Saturday, April 24, 2010

C# 4.0: Небольшие малозаметные, но важные изменения

C# 4.0 вышел вместе с MSVS 2010 еще 12ого апреля. Уже довольно много статей о новых фичах вышло - о динамических типах и DLR, о параметрах и т.д. Но довольно много мелких изменений, который довольно слабо освещены, и о которых не стоит забывать.

Решил перечислить их с небольшими комментариями:


  • Во многие типы наконец-то добавили TryParse (TimeSpan, Enum, Guid).
  • Чуть проще работа со строками: Join'нить и Contact'ить можно все что IEnumerable, добавили String.IsNullOrWhiteSpace
  • Идея Enum'ов как флаги продолжила свою жизнь в виде Enum.HasFlag
  • Наконец-то не надо изобретать велосипед при копировании с одного потока в другой - System.IO.Stream.CopyTo
  • Теперь не надо писать конструкции типа:

    private MyType field;
    public Field { get { return field ?? (field = new MyType()); } }
    Вместо этого можно воспользоваться System.Lazy
  • Добавили System.Tuple<...> - вот этого часто не хватало. Определять свои классы лень только для того, чтоб вернуть два-три значения, а out-параметры не очень красивы.


Это в принципе именно полезные, но мало-заметные изменения. Полный список можно прочитать в этой статейке.

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


No comments: