C# 8.0 Caller Argument Expression

130
04 апреля 2019, 01:10

Наткнулся на вот эту статью, которая посвящена фишкам, которые с высокой вероятностью будут добавлены в новую версию языка.

Caller Argument Expression

Это получается, что компилятор теперь можно будет заставить получить название переменной, которое было передано извне в метод?

Answer 1

Да, если была передана именно переменная. В общем случае можно будет получить строковое представление выражения, переданного в метод.

Ориентируемся, по соответствующему предложению на Github..

Если метод объявлен так:

public static class Debug
{
     public static void Assert(bool condition, [CallerArgumentExpression("condition")] string message = null);
}

и вызывается так:

Debug.Assert(someBoolean);
Debug.Assert(array != null);
Debug.Assert(array.Length == 1);

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

Debug.Assert(someBoolean, "someBoolean");
Debug.Assert(array != null, "array != null");
Debug.Assert(array.Length == 1, "array.Length == 1");
READ ALSO
C# 8.0 Records. Зачем нужно?

C# 8.0 Records. Зачем нужно?

Наткнулся на вот эту статью, которая посвящена фишкам, которые с высокой вероятностью будут добавлены в новую версию языка

134
Перевод текста в PHP

Перевод текста в PHP

Всем приветКак мне перевести слово с русского на украинский в PHP? Я получаю стрингу со словом и мне нужно его перевести, подскажите, пожалуйста,...

132
Как установить расширение php на сервер

Как установить расширение php на сервер

Подскажите как правильно установить расширение php пошагово ? к примеру на сервере не хватает расширения ZipArchive мануал http://phpnet/manual/ru/book

153