c# – 使用get vs property vs方法
参见英文答案 >
Exposing Member Objects As Properties or Methods in .NET????????????????????????????????????7个
如果我在课堂上有私人财产,我想知道在以下三种情况(内存使用,可用性,最佳实践等)之间的区别是什么: class testClass { private string myString1 = "hello"; private string myString2 { get { return "hello"; } } private string myString3() { return "hello"; } } 除了显然能够设置myString1中的值而不是myString2或myString3中的值之外,我想知道更多关于它们在效率方面有何不同? 解决方法
所有这些方法在编译时都非常不同,尽管在使用方面非常相似.我将简要总结一下这些差异:
>这是一个简单的私有实例变量.在引用时,它很容易变得最有效. 与1相比,方法2和3将同样效率低,因为它们都涉及函数调用的开销.我不知道他们都编译到的CIL代码(也许其他人可以生成它),但它们肯定涉及更多的指令,而引用myString1应该只需要CIL中的单个指令. 我不确定如何在不了解更多关于上下文的情况下对最佳实践做出非常有用的评论,但方法2(即私有财产)通常被认为是无用的.在我看来,第三种方法永远不应该被使用(它要求变成一种财产).我认为你真正想要的只是一个普通的旧私有变量,所以一定要去做第一个声明.公共值应始终作为属性而不是类中的变量(即属性的私有/受保护的后备变量)进行访问,但这与您的问题略有不同. (无论如何,你可以找到很多资源在快速搜索中讨论这个问题.)最后,请注意,如果你的“属性”是只读的(即在任何时候都没有修改),你真的想要使用常量,即私有const字符串myString1 =“hello”;. 希望有助于澄清一些事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |