7

声明有什么用

private Int64 _ID ;
public Int64 ID{get { return _ID; }set { _ID = value; } };

像这样声明一个私有变量

现在通常在编码中我们直接使用 ID,然后访问私有的 _ID。这如何提供更多安全性而不是直接声明为

public int64 ID{get;set;}
4

4 回答 4

4

两全其美:

public long ID {get;set;}

那不是更容易吗?

您不应该将字段公开为public,但这并不意味着您也需要冗长。

于 2012-12-19T07:21:28.367 回答
3

您可以benefit通过 get 和 set 方法获得封装,以便调用您可以将custom logic. private_ID是一个占位符,用于保存您的属性的数据,protected当某些主体写入时通过 set 方法_id,类似地,您可以在给 value by 之前放置自定义逻辑get

这就是msdn关于属性的解释“属性结合了字段和方法的各个方面。对于对象的用户来说,属性似乎是一个字段,访问该属性需要相同的语法。对于类的实现者来说,属性是一个或者两个代码块,分别代表一个get访问器和/或一个set访问器。get访问器的代码块在读取属性时执行;set访问器的代码块在属性被赋予新值时执行。没有 set 访问器的属性被认为是只读的。没有 get 访问器的属性被认为是只写的。具有两个访问器的属性是“读写”。你可以在这里阅读更多。

于 2012-12-19T07:22:08.000 回答
2

你应该阅读PropertiesFields。属性提供了更好的封装,应该使用而不是暴露公共字段。

于 2012-12-19T07:22:54.693 回答
2

当您在设置和获取值之前检查输入或输出时,它会带来安全性,请看:

private int? _ID;
public int ID 
{
    get { return _ID ?? 0; }
    set { _ID = value >= 0 ? value : 0; } 
}
于 2012-12-19T07:26:15.713 回答