Какова цель оператора => в общедоступных полях? [дубликат]
Какова цель использования оператора с общедоступными полями в классе 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
только свойства.