我对自动实现的属性有些怀疑。为什么我们先得到,然后设置值?
答案 0 :(得分:1)
您发布的内容不是自动财产。
下面是一个示例类,其中包含1个自动属性和类似于您所做的自定义属性。
public class MyPropertyClass
{
public MyPropertyClass(bool affectLogic)
{
_affectLogic = affectLogic;
}
private readonly bool _affectLogic;
public string MyAutoProperty { get; set; }
private string _myPropertyWithLogic;
public string MyPropertyWithLogic
{
get
{
if (_affectLogic)
_myPropertyWithLogic = "Some value";
return _myPropertyWithLogic;
}
set
{
if (_affectLogic)
{
_myPropertyWithLogic = "Some value";
}
else
{
_myPropertyWithLogic = value;
}
}
}
}
autoproperty“MyAutoProperty”提供了一种简单获取和设置属性值的机制。
您在标准属性中发布的内容,允许您根据特定条件操纵或返回属性值。在您的帖子中,您要检查在设置之前发布的值是否为空。
如果您不需要访问该类之外的属性,则无需使用get方法。如果你删除了get,那么你正在创建一个“WriteOnly”属性,这是不好的做法。
在接受“Alert”值的类上创建一个公共方法。如果您不需要访问该课程以外的属性,则根本不要创建属性。
public void SetMyProperty(string value)
{
_myPropertyWithLogic = value;
}