0

有没有办法在 C# 中做这样的事情:

public class Class2 {
 public string PropertyName1 { get 
   {
         return this; //i mean "PropertyName1"
   }
   set {
       this = value;
       DoAdditionalFunction();
   }
}

因为我需要在“集合”中调用附加函数,所以我需要一个额外的私有字段,例如

private string _propertyName1;
 public string PropertyName1 { get 
   {
         return _propertyName1;
   }
   set {
       _propertyName1= value;
       DoAdditionalFunction();
   }

我不想使用像 _propertyName1 这样的附加属性。有没有办法实现这一点或任何最佳实践?

4

1 回答 1

5

不 - 如果您需要除了最琐碎的“设置字段,返回字段值”之外的任何行为,您需要编写“完整”属性。自动实现的属性只是琐碎属性的简写。

请注意,就对象的实际内容而言,您并没有真正获得“额外”私有字段 - 只是您明确声明了私有字段,而不是让编译器自动为您做实施的财产。

(不清楚你的第一个属性试图做什么——在类中设置是无效的,除非你已经转换this字符串,否则你不能从字符串类型的属性返回......)this

于 2012-04-17T20:12:09.337 回答