微软的代码指南禁止构造函数中的复杂操作(参见https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/constructor)
如果不在构造函数中,验证输入数据的正确方法是什么?下面是一个示例:
class User{
User(string id){
Validate(id); //Looks up id in database or remote service
}
}不应在构造函数中调用验证。但是我如何确保我没有一个带有无效id的User类呢?
发布于 2019-10-17 19:51:46
基本上,这取决于操作是否实际上是复杂的。
如果操作比较复杂,可以使用properties并验证里面的值:
class User{
private string _id;
public int Id
{
get
{
return _id;
}
set
{
if (Validate(value))
{
_id = value;
}
}
}
User(){
}
}https://stackoverflow.com/questions/58431703
复制相似问题