Какова цель оператора => в общедоступных полях? [дубликат]

Какова цель использования оператора с общедоступными полями в классе C#? Я видел, как это делается в коде модульного теста в проекте eShopOnWeb ASP.NET Core, размещенном на GitHub. Это действительно собственность с =>оператор, ссылающийся на значение, возвращаемое методом получения? Рассматриваемый код показан ниже:

      using Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate;

namespace Microsoft.eShopWeb.UnitTests.Builders
{
    public class AddressBuilder
    {
        private Address _address;
        public string TestStreet => "123 Main St.";
        public string TestCity => "Kent";
        public string TestState => "OH";
        public string TestCountry => "USA";
        public string TestZipCode => "44240";

        public AddressBuilder()
        {
            _address = WithDefaultValues();
        }
        public Address Build()
        {
            return _address;
        }
        public Address WithDefaultValues()
        {
            _address = new Address(TestStreet, TestCity, TestState, TestCountry, TestZipCode);
            return _address;
        }
    }
}

1 ответ

Решение

Возьмите этот класс:

      public class Foo
{
    public int Bar { get; } = 42;
    public int Qaz => 42;
}

При декомпиляции это выводит следующее:

      public class Foo
{
    [CompilerGenerated]
    [DebuggerBrowsable(DebuggerBrowsableState.Never)]
    private readonly int <Bar>k__BackingField = 42;

    public int Bar
    {
        [CompilerGenerated]
        get
        {
            return <Bar>k__BackingField;
        }
    }

    public int Qaz
    {
        get
        {
            return 42;
        }
    }
}

Вы смотрите на сокращение для get только свойства.

Другие вопросы по тегам