在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;
    }
  } 
}

在C#中使用字段和属性构造getter和setter

它是一个格式占位符,实际的方法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)