C#default写属性名称

时间:2018-04-13 20:55:58

标签: c# properties

有没有办法快速覆盖"值"放置在C#?

的set块中的新变量的名称
class Foo {
      string name = "guy";
      public string Name {
        get {
          return name;
        }
        set {
          if (value != "foo") {
            name = value;
          } else {
            Console.WriteLine("sorry I already took that one!");
          }
        }
      }

例如在swift中我可以这样写:

var Name: String {
    get {
        return name;
    }
    set (newName) {
        if (newName == "Foo") {
            print("sorry I already took that one!")
        } else {
            name = newName;
        }
    }
}

我知道我可以通过在块的开头分配来轻松解决它,但是在关键字后面的括号中命名值的方法对我来说非常清楚,所以我想问一下是否有其他解决方案。

1 个答案:

答案 0 :(得分:3)

基本上没有。这是一种语言功能,value是上下文关键字,始终表示set访问者(以及自定义事件访问者)中的传入值。

你可以伪造它:

var newName = value;

但是......使用value而不是newName可以获得更好的语法突出显示,并且任何C#阅读器都会自动知道{1}}在该上下文中的含义。