2016-07-25 2 views
1

Для следующего кода я не понимаю, что означает «{0}», представленный как в getter, так и в setter, я знаю, что это относится к индексу номер, но почему это должно быть 0? Я также путаюсь в переменной «значение». Это просто параметр места, как мы использовали в Java?Использование поля и свойства для построения getter и setter в C#

спасибо.

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; 
    } 
    } 
} 
+0

Формат заполнителей. – Hassan

+2

[Это описано в MSDN, как вы могли ожидать.] (Https://msdn.microsoft.com/en-us/library/828t9b9h (v = vs.110) .aspx) –

+0

Значение переменной является параметр сеттера. В Java вы должны записать его как параметр метода: public public string setCaption (String value) {...} ' –

ответ

2

Это формат заполнитель, фактический метод Console.WriteLine() позволяет использовать один и тот же синтаксис, как String.Format().

Заполнители представляют собой числовой индекс параметров, предоставленных после строки формата.

Например:

var s = String.Format("Hello {0}!", "World"); 

печать Будет:

Hello World! 

Пример нескольких заполнителей будет:

var s = String.Format("{0} Blind {1}", "Three", "Mice"); 

Вы также можете затем использовать различные другие форматированию спецификаторов для мельчя контролируйте вывод значения. Это довольно широкая тема, поэтому см. here on MSDN для получения дополнительной информации о композитном форматировании.

Что касается value, это контекстуальное ключевое слово, то есть оно существует только в определенных контекстах, в свойствах вашего случая.

value действует в этом случае как переменная типа свойства, заполненная значением устанавливаемого свойства.

Подробнее о контекстных ключевых словах можно узнать на MSDN here.

0

{0}, значит взять на себя 1-ый из объектов, указанных после строки формата

{1}, значит взять 2 объектов, указанных после строки формата и т.д.

... в другие слова ... индекс основан на нулевом значении.

Ключевое слово «значение» является «контекстуальным ключевым словом», является ли оно заполнителем для представления фактического значения «установлен» для свойства (при использовании в сетчатке сеттинга).

(есть и другие из них доступны в случае, если вы заинтересованы: https://msdn.microsoft.com/en-us/library/the35c6y.aspx)

Смежные вопросы