[英]How do you give a C# Auto-Property a default value using a custom attribute?
[英]In C# can I make auto-property perform some extra work with a help of an attribute?
这个问题是相关的,但不一样: 你如何给C#Auto-Property一个默认值?
我喜欢自动属性,但有时我必须做这样的事情:
private string someName;
public string SomeName
{
get
{
return someName;
}
set
{
someName = value.Trim();
}
}
如果我必须多次做同样的事情,我开始希望我不需要输入这么多行/字符的代码。 我希望能够拦截值并改变它类似:
public string Somename
{
get;
[Trim]
set;
}
有没有办法做这样的事情? 它会是愚蠢的吗? 有没有更好的办法? 还有其他一般评论吗? 我承认,我给出的例子有点假设,我现在找不到确切的代码,这让我想到了这一点。
谢谢。
没有办法做到这一点。 C#auto属性仅仅是最简单的属性的语法糖,仅此而已。
你可以使用AOP,就像Postsharp一样 ,但为什么你不只是在这种情况下使用后备存储?
另外,为了完整起见,您应该这样做:
someName = (value ?? string.Empty).Trim();
处理null
也是如此。
请注意,如果您考虑到涉及更多工作的具体案例,您应该询问该案例,而不是您在问题中所拥有的那些案例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.