有没有办法快速覆盖"值"放置在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;
}
}
}
我知道我可以通过在块的开头分配来轻松解决它,但是在关键字后面的括号中命名值的方法对我来说非常清楚,所以我想问一下是否有其他解决方案。
答案 0 :(得分:3)
基本上没有。这是一种语言功能,value
是上下文关键字,始终表示set
访问者(以及自定义事件访问者)中的传入值。
你可以伪造它:
var newName = value;
但是......使用value
而不是newName
可以获得更好的语法突出显示,并且任何C#阅读器都会自动知道{1}}在该上下文中的含义。