如何为getter和setter创建多个处理程序,而不是为每个字段编写相同的代码。我知道它有一些设计模式。
public class TestClass
{
private string _firstName;
private string _lastName;
private string _personDescription;
private string _other;
public TestClass() { }
//same for lastName, personDescription, other
public string FirstName
{
get
{
return _firstName;
}
set
{
_firstName = FixValue(value);
}
}
private string FixValue(string value)
{
value = value.Trim();
if (value == string.Empty)
{
return null;
}
return value;
}
}
答案 0 :(得分:3)
这样做的一种可能方法是Aspect Oriented Programming。
基本上,您创建了一个方面来定义在编译时注入代码的自定义功能。
此类库的示例是PostSharp。看一下PostSharp教程Property and Field Interception。
在您的情况下,您需要实施OnSetValue
方法,您可以在其中添加自定义代码。然后添加您在属性上方创建的属性。
答案 1 :(得分:0)
有一个名为propfull
,propg
和prop
的默认代码段(至少在visual studio 2010中)。但您仍然需要输入名称和数据类型。您可以复制粘贴代码段并修改它以在集合上调用自定义方法。
要自动生成属性,您还可以右键单击 变量,点击重构,然后点击封装字段 。输入propertyname或使用默认值。 点击确定两次或输入。