这与其他不好的编码实践相结合,造成了一些表面上非常危险的情况.例如:
Customer person = NextInline(); //person is Aliceperson.DataBackend.ChangeAddress(ref person,newAddress);//person Could Now be Bob,Eve,or null
你能想象走进商店改变你的地址,走出去是一个完全不同的人吗?
可怕,但实际上在这个应用中使用ref似乎是无害的多余的.我有麻烦证明需要大量的时间来清理它.为了帮助出售这个想法,我提出了以下问题:
如何不必要地使用ref是破坏性的?
我特别关心维护.具有实例的合理答案是首选.
你也欢迎辩论清理是不必要的.
解决方法 我会说最大的危险是,如果由于某种原因参数在函数内设置为null:public voID MakeNull(ref Customer person){ // random code person = null; return;}
现在,你不只是一个不同的人,你已经完全被抹去了!
只要任何开发此应用程序的人都了解:
By default,object references are passed by value.
和:
With the
ref
keyword,object references are passed by reference.
如果代码正如预期的那样工作,并且您的开发人员了解这些差异,则可能不值得将其全部删除.
总结以上是内存溢出为你收集整理的c# – Ref滥用:值得清理?全部内容,希望文章能够帮你解决c# – Ref滥用:值得清理?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)