Это не полный список, но это некоторые из моих любимых новых функций в C # 3.0:
Инициализаторы нового типа. Вместо того чтобы сказать это:
Person person = new Person();
person.Name = "John Smith";
Я могу сказать это:
Person person = new Person() { Name = "John Smith" };
Аналогично, вместо добавления элементов по отдельности, я могу инициализировать типы, реализующие IEnumerable, следующим образом:
List<string> list = new List<string> { "foo", "bar" };
Новый синтаксис для лямбда-выражений также хорош. Вместо того, чтобы вводить это:
people.Where(delegate(person) { return person.Age >= 21;);
Я могу напечатать это:
people.Where(person => person.Age >= 21 );
Вы также можете написать методы расширения для встроенных типов:
public static class StringUtilities
{
public static string Pluralize(this word)
{
...
}
}
Что позволяет что-то вроде этого:
string word = "person";
word.Pluralize(); // Returns "people"
И наконец. Анонимные типы. Таким образом, вы можете создавать анонимные классы на лету, например:
var book = new { Title: "...", Cost: "..." };