使用get vs property vs方法

ben*_*age 3 c#

如果我在课堂上有私人财产,我想知道在以下三种情况(内存使用,可用性,最佳实践等)之间的区别是什么:

class testClass
{
     private string myString1 = "hello";

     private string myString2 { get { return "hello"; } }

     private string myString3() { return "hello"; }
}
Run Code Online (Sandbox Code Playgroud)

除了显然能够设置myString1中的值而不是myString2或myString3中的值之外,我想知道更多关于它们在效率方面有何不同?

Luk*_*keH 8

我尽可能遵循这些规则:

  • 字段应保密
  • 应使用属性来公开数据
  • 应该使用方法来执行操作

很明显,在某些情况下,每一次性能下降都很重要,但总的来说,我会尝试遵循最佳实践,直到性能分析告诉您需要进行优化.

这里有一篇好文章:为什么属性很重要


Arm*_*her 5

我个人更喜欢没有副作用的物品和明确的吸气剂,如果有动物计算的话.例如:

class User {
    private string username;

    public string Username {
        get { return username; }
        set { username = value; }
    }

    public Post GetLatestPost() {
        // query the database or whatever you do here.
    }
}
Run Code Online (Sandbox Code Playgroud)

我见过的很多API看起来都差不多.希望有所帮助.