在C#中使用字段和属性构造getter和setter
本文关键字:属性 getter setter 字段 | 更新日期: 2023-09-27 17:58:33
对于下面的代码,我不太明白getter和setter中"{0}"的含义,我知道它指的是一个索引号,但为什么它应该是0?我也对变量"value"感到困惑。这只是一个像我们在Java中使用的位置参数吗?
谢谢。
void Main() {
Button b = new Button();
b.Caption = "abc";
string c = b.Caption;
Console.WriteLine("c = {0}'r'n", c);
Button p = new Button{Caption = "cool"};
string e = p.Caption;
Console.WriteLine("e = {0}", e);
}
class Button {
private string caption;
public string Caption {
get {
Console.WriteLine("get {0}", caption);
return caption;
}
set {
Console.WriteLine("set {0}", value);
caption = value;
}
}
}
它是一个格式占位符,实际的方法Console.WriteLine()
允许您使用与String.Format()
相同的语法。
占位符表示在格式字符串之后提供的参数的数字标记。
例如:
var s = String.Format("Hello {0}!", "World");
将打印:
Hello World!
多个占位符的一个例子是:
var s = String.Format("{0} Blind {1}", "Three", "Mice");
然后,您还可以使用各种其他格式说明符来更精细地控制值的输出。这是一个相当宽泛的主题,因此请参阅MSDN上的此处,以了解有关复合格式的更多信息。
至于value
,它是一个上下文关键字,即它只存在于某些上下文中,在您的案例属性中。
value
在这种情况下充当属性类型的变量,该变量填充了所设置的属性的值。
您可以在MSDN上再次阅读有关上下文关键字的更多信息。
{0},表示取格式字符串之后指定的对象中的第一个
{1} ,表示取格式字符串后指定的对象中的第二个etc
换句话说。。。该指数为零。
"value"关键字是一个"上下文关键字",它是一个占位符,用于表示属性的实际值"set"(在属性设置器中使用时)。
(如果您感兴趣,还有其他的:https://msdn.microsoft.com/en-us/library/the35c6y.aspx)