【发布时间】:2016-12-23 16:23:21
【问题描述】:
假设你有一个像这样的私有变量
private int _x;
你有一个属性可以提供对该变量的外部访问:
public int X
{
get
{
return _x;
}
set
{
_x = value;
}
}
是否更好地放置“验证”逻辑(值非负,在界限内等) 在 getter 部分还是 setter 部分?似乎两者都可以接受,但是有首选的选择吗?
【问题讨论】:
-
把它放在 getter 中意味着调用者永远不会知道他们做错了什么。
-
您希望在 setter 中使用它,因为每次检索值时都没有必要验证它,除非您出于某种原因直接更新 _x。
-
补充@DavidG 所说的...如果您放入吸气剂,您会验证什么?验证通常(总是?)验证用户输入,以确保损坏(无效)数据不会进入系统。它进入二传手。
-
对,这是有道理的。如何将此问题标记为已回答?我是新来的(发布问题,而不是查看问题)。
-
让@David 将他的评论放在答案中,并将其标记为已接受。
标签: c# properties