可能的重复:
公共字段与自动属性
我认为这个问题会在某个地方得到解答,但我在通常的地方找不到它。我想知道这样做有什么好处
private int _foo;
public int foo {get {return _foo;} set{_foo = value;}}
Run Code Online (Sandbox Code Playgroud)
或者
public int foo {get; set;}
Run Code Online (Sandbox Code Playgroud)
刚刚超过
public int foo;
Run Code Online (Sandbox Code Playgroud)
如果需要更复杂的操作,我可以看到好处,但是对于像这样的简单情况有什么好处呢?
实际上,所有指南都是关于创建可重用库的。在那里,当您创建property
(使用 get/set)时,您还可以在以后添加当某人获取或设置值时执行的代码(例如添加验证等),而无需更改代码的外部定义(因此不需要重新编译其他库)。但是,如果您总是重新编译整个解决方案并且没有其他人使用该库,则这没有任何价值。
使用属性的另一个好处是您可以限制谁可以获取或设置该值。例如,每个人都可以获取该值,但只有派生类可以设置它(protected
)。
也就是说,仍然建议在属性存在时就使用它们public
(而不是private
字段)。
我仅在需要最佳性能时才公开字段(例如连续访问该值一百万次)。
所以总结一下
属性(获取/设置)相对于字段的优点:
属性的缺点:
ref
参数传递给方法。 归档时间: |
|
查看次数: |
7961 次 |
最近记录: |