Comments 21
А нельзя написать вот так?
public Thingy(string name = «Default», int whatever = -1)
{
_name = name;
_whatever = whatever;
}
public Thingy(string name = «Default», int whatever = -1)
{
_name = name;
_whatever = whatever;
}
Уже было, да текста намного меньше, чем кода; причем такого, что можно найти в любом обзоре C# 4.
P.S. все это, и многое другое уже реализовано в Nemerle.
P.S. все это, и многое другое уже реализовано в Nemerle.
По-моему, немного поздновато, новые возможности .Net 4.0 уже несколько раз обсуждались. :o)
Не знаю как у вас, у нас в php это уже лет 10 присутсвует :)
как и в Visual Basic :)
просто в спецификации CLI нет таких параметров для возможности унификации языков
да и сейчас по сути ничего не поменялось, ввели синтаксический сахар, вся работа через атрибуты
просто в спецификации CLI нет таких параметров для возможности унификации языков
да и сейчас по сути ничего не поменялось, ввели синтаксический сахар, вся работа через атрибуты
А ведь, если я не ошибаюсь, в первой (второй, третьей) версии шарпа это яростно отвергалось?
Говорилось, что дефолтные значения параметров — от лукавого.
Говорилось, что дефолтные значения параметров — от лукавого.
>> яростно отвергалось
кем?
кем?
Никто не хотел превращать c# в скриптовый язык. Но, судя по всему, к тому и идет. Народ требует
Самое главное, что можно свободно не использовать эти скриптовые рюшечки…
в чем проявляется «превращение в скриптовый язык»?
Вероятно, имеется в вид что он становится таким же красивым и понятным как скриптоновые языки вроде Python и Ruby =)
Петросянишь? Молодцом, тут очень не хватает таких.
Имелось в виду то, что уходит его первоначальная строгость. Появляются такие возможности как при вызове пропуск параметров методов, var, dynamic.
C# идет по дороге развития динамического языка программирования, что хорошо, вместе с тем теряя свою строгость, что не нравится лично мне.
Имелось в виду то, что уходит его первоначальная строгость. Появляются такие возможности как при вызове пропуск параметров методов, var, dynamic.
C# идет по дороге развития динамического языка программирования, что хорошо, вместе с тем теряя свою строгость, что не нравится лично мне.
Отлично, понемногу в свободное время изучаю C#. После основной работы, связанной с PHP очень не хватает default параметров
ИМХО, пример не очень подобран :) Пустой (первый) конструктор явно в реальной жизни будет использовать второй, а не третий:
и тогда дефолтные значения так же будут описаны только в одном месте.
P.S. Это я не придираюсь, просто первое, что бросилось в глаза.
public Thingy()
: this("Default")
{
}
public Thingy(string name)
: this(name, -1)
{
}
* This source code was highlighted with Source Code Highlighter.
и тогда дефолтные значения так же будут описаны только в одном месте.
P.S. Это я не придираюсь, просто первое, что бросилось в глаза.
Слава Биллу!
Интересно, а что будет в 5 версии?
Интересно, а что будет в 5 версии?
>>> public Thingy([Optional,DefaultParameterValue(«Default»)] string name,
>>> [Optional, DefaultParameterValue(-1)]int whatever)
а покороче то никак немогли придумать?
>>> [Optional, DefaultParameterValue(-1)]int whatever)
а покороче то никак немогли придумать?
Sign up to leave a comment.
Новые атрибуты в .NET 4