仅在set/getter上指定setter

Ste*_*eve 8 c# silverlight windows-phone-7

我正在使用getter和setter来创建类的实例.

是否可以在不必拥有私有变量的情况下调整所设置的值,并直接在类型上进行调整?

例如,如果我的班级是:

public class Cat()
{
public String Age{get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想实例化它做:

new Cat({Age: "3"});
Run Code Online (Sandbox Code Playgroud)

现在,如果我有一个名为ConvertToHumanYears的函数,我想在它存储之前调用它,我会想象这样的东西是正确的方法:

public class Cat()
{
public String Age{get; set{ value = ConvertToHumanYears(value); }
}
Run Code Online (Sandbox Code Playgroud)

但上面(以及它的许多方法)似乎都会返回错误.是否可以做一些类似的事情,而不必拥有我设置和获得的额外私有变量?

Bal*_*a R 19

您不能将auto属性用于getter并且具有setter的定义.

它也是

public class Cat()
{
   public String Age{get; set; }
}
Run Code Online (Sandbox Code Playgroud)

要么

public class Cat()
{
  private String _age;

    public String Age{
      get{
          return _age;
      }
      set{
           _age = ConvertToHumanYears(value); 
      }
    }
  }

}
Run Code Online (Sandbox Code Playgroud)