假设你有一个像这样的私有(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/

10-15 17:35