首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >向属性的C# get/set添加代码而不需要后备字段?

向属性的C# get/set添加代码而不需要后备字段?
EN

Stack Overflow用户
提问于 2013-07-24 12:08:22
回答 1查看 13K关注 0票数 40

您知道如何使用属性自动生成支持字段吗?就像如果我去:

代码语言:javascript
复制
public String SomeProperty {get; set;}

我知道如果我想向该属性添加代码,我必须创建支持字段,如下所示:

代码语言:javascript
复制
 public string someProperty = string.Empty;
 public string SomeProperty
 {
     get { return someProperty; }
     set
     {
         someProperty = value;
         DoSomething();
     }
 }

基本上,我想知道的是...有没有办法在不创建支持字段的情况下做到这一点?例如,我可以使用它来触发在设置属性时发生的某种事件。我在找这样的东西:

代码语言:javascript
复制
 public string SomeProperty
 {
     get;
     set { this.OnSomeEvent; }
 }

但我知道这会导致编译错误,因为如果set声明一个body,get就需要声明一个body。

我已经研究过了,什么也找不到,但我想我应该去看看有没有人知道。

我想我真正想要的是在属性改变时触发事件的方法,而不必添加所有额外的杂乱。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2013-07-24 12:40:18

没有任何解决方案内置到框架中,并且您不能通过反射修改现有类型(以便在运行时添加逻辑)。要做到这一点,唯一的方法似乎是在编译时。

有一个产品http://www.postsharp.net/可以做到这一点(拦截属性/方法调用),而且似乎确实有一个免费版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17825049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档