что означает => при создании объекта? [дубликат]

193
24 января 2019, 13:40

На данный вопрос уже ответили:

  • Что означает оператор “стрелочка” в контексте объявления свойства 2 ответа
  • Лямбда выражение или…что? 1 ответ

Имеется код:

namespace HelloApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }
        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();
    }
}

Что означает "=>" ? Что IWebHostBuilder создаётся при помощи вызова метода WebHost.CreateDefaultBuilder(args) .UseStartup(); ?

Answer 1

В вашем случае это - член, воплощающий выражение. Т.е. индексатор/свойство/конструктор/метод суть которых состоит всего в одной цепочки действий, грубо говоря метода в одну строку.

Так же в других случаях это является "оператором =>" отделяющим параметры лямбда-выражения от его тела.

Грубо говоря, конкретно ваша строка означает "Когда будет вызван этот метод выполнить вот это выражение и вернуть его результат". Такое выражение не обязательно возвращает результат. Например можно сделать вот так:

string Default => "Хехе";
void Do(string value) => Console.WriteLine(value);
public void Main(string[] args)
{
    Do(Default); //Так вы покажете в консоли "Хехе"
}
READ ALSO
Валидация IDataErrorInfo для свойств, представляющих собой массивы bool[]

Валидация IDataErrorInfo для свойств, представляющих собой массивы bool[]

В окне WPF имеется множество контролов разных типов в перемешкуКонкретнее: анкета из 25 вопросов, в каждом из которых 10-12 вариантов, отраженных...

186
Типизация коллекции объектом Type

Типизация коллекции объектом Type

Есть несколько коллекций:

191
C# Ошибка в SingleTon?

C# Ошибка в SingleTon?

Есть файл кастомных конфигураций для нескольких клиентов, которые я держу в памяти через Single TonДолго все работало без проблем но тут внезапно...

187