假设你有一个像这样的私有(private)变量
private int _x;
并且您有一个属性可以提供对此变量的外部访问:
public int X
{
get
{
return _x;
}
set
{
_x = value;
}
}
放置“验证”逻辑(值非负,在界限内等)是否更好
在 getter 部分还是 setter 部分?似乎两者都可以接受,但是有没有首选的选择?
最佳答案
首选 setter ,原因如下:最好在输入垃圾值时抛出异常或向用户显示消息,而不是允许垃圾值,并使您的类受到内部错误数据的影响。
您会注意到 MSDN Example 使用 setter 进行输入验证。
关于C# 属性 : Validation in getters or setters?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41304756/