为什么在c#中使用getter和setter

时间:2013-04-06 01:10:44

标签: c# class

我在C#(和VB.NET)

中使用了两种方法来设置公共类

选项1 - Setters&吸气剂

public class foo
{
  private string _bar;
  public string bar
  {
    get { return _bar; }
    set { _bar = value; }
  }
}

选项2 - 简单公共类

Public Class foo
    Public string bar = "";   
End Class

我已经完成了两种方式,但它更简单,使用选项2的代码更少 - 而且我没有看到在设置或获取类或性能值的其他编码方面的差异 - 两种方式都可行细

我的问题是“如果getter或setter中没有其他'特殊事物'发生,你为什么要做选项1?如果是这样的话 - 这些理由可能是什么?

我想知道是否有一些'令人信服的论据',因此使用制定者和吸气剂,如果是这样'具体为什么?

干杯,查理兹

1 个答案:

答案 0 :(得分:3)

对于您的具体情况,只需拥有一个公共变量就更快(所有getter和setter都在编译时转换为函数)。

与Java不同,如果你有getter / setter函数,它们必须作为函数调用。如果您想在某个时刻将公共变量更改为getter / setter,则代码库不必更改(但必须重新建立)这意味着如果您正在开发库,并且你想热插拔DLL并将公共变量更改为getter / setter,它将破坏目标程序。