Почему этот «ярлык» является полем? - PullRequest
0 голосов
/ 03 декабря 2018

В настоящее время я работаю над книгой Xamarin.Там вы можете увидеть этот код:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using Xamarin.Forms;

namespace BookCode

{
    public class Greetings : ContentPage
{
    public Greetings()
    {
        Label label;

        label = new Label
        {
            FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label)),
            HorizontalOptions = LayoutOptions.Center,
            VerticalOptions = LayoutOptions.Center
            };

        Content = label;

           SizeChanged += OnPageSizeChanged;


        void OnPageSizeChanged(object sender, EventArgs args)
        {
            label.Text = String.Format("{0} \u00D7 {1}", Width, Height);
        }
    }
}
}

И в пояснении к коду вы можете прочитать это:

"Вместо этого обработчик событий получает доступ к элементу Label (удобно сохраняется как поле), чтобы отобразить свойства ширины и высоты страницы. Символ Unicode в вызове String.Format является символом времен (×). "

Мои текущие знания полей и свойств в основном таковы:

public class ClassName
{
private string field;

public string property {get {return field;} set {field = value;} }
}

Я не понимаю, почему элемент Label сохраняется как поле.Может ли это быть сохранено как-то еще?

1 Ответ

0 голосов
/ 03 декабря 2018

Это , а не поле.Поля являются членами класса или структуры .Этот ярлык является просто локальной переменной.

Книга неправильная.

Вы можете сделать это поле или свойство, очевидно, переместив определение метки на уровень класса.

...