C# 3.0 specifications
![](/images/graemlins/smile.gif)
а что эта оперция должна делать?
А есть какая нибудь надстройка над студией, что бы можно было покодить нормально?
![](/images/graemlins/smile.gif)
чо покодить?
Чегонибудь на C# 3.0
26.8 Expression treesГениально! К сожалению, Маккарти изобрел эту фичу более 50 лет назад
Expression trees permit lambda expressions to be represented as data structures instead of executable code.
![](/images/graemlins/smile.gif)
Однако стремительно идущий процесс удобного интегрирования разных таких штук в С-подобный процедурный/ОО язык меня весьма радует.
2Аис - понятия не имею, полазь по сайту, может найдёшь какую-нибудь демку, хотя вряд ли, конечно.
может найдёшь какую-нибудь демку, хотя вряд ли, конечноНу вообще-то есть прекрасный сайт netfx3.com, на котором тут можно скачать:
1. .NET Framework 3.0 Runtime Components RC1
2. Windows SDK for Vista RC1 and the .NET Framework 3.0 RC1
3. Visual Studio 2005 Extensions for Windows Workflow Foundation (WF RC5)
4. Visual Studio "Orcas" CTP - Tools for .NET Framework 3.0 RC1
Для того, чтобы кодить на C# 3.0 достаточно скачать пункты 1 и 4.
upd. Вношу поправку. Для C# 3.0 надо качать другую Orcas c не менее замечательного сайта web-страница
ОМГ, круто, спасибо
Если кто скачает, выложите плз.
Давно как
delegate T EmptyAction<T>
static T Call<T>(EmptyAction<T> action)
{
return action;
}
static Regex matchStartSequence = new Regex(Call<string>(delegate
{
return "asdf";
};
И между прочим это не такое уж и извращение, потому что во-первых изготовление строчки производится непосредственно в месте использования, а во-вторых не захламляется пространство имён.
Ну а по-новому это как?
Понятия не имею =) Я его не настолько внимательно читал
![](/images/graemlins/frown.gif)
Ну так заботай, расскажи.
![](/images/graemlins/frown.gif)
Согласен, их тут переизбыток. Думается к четвертому шарпу они придумают, как сделать код чище.
obj?.FieldExpression должно быть эквивалентно записи
obj != null ? obj.FieldExpression : default(typeof(obj.FieldExpression
такая конструкция постоянно нужна в бизнес-логике при написании "длинных" вызовов
core.Context.ViewManager.GetSelectedItem.Childs.Count
а ещё больше испорчен идеологически. не очень понятно, зачем они пытаются создать помесь молотка и микроскопа.
впрочем, это вполне в стиле Microsoft.
Теперь M$ довольно успешно впихивает в тот же синтаксис (с полной обратной совместимостью) удобные функциональные элементы, ленивость (type inference/anonimous classes) и тренируется во впихивании совершенно чуждых вещей вроде SQL syntax, тоже довольно успешно. Подчеркну - всё со стопроцентной обратной совместимостью. И пока удаётся!
Да, получается "помесь молотка и микроскопа", в которой можно и стучать, и, так сказать, подковывать инфузории. Вполне органичная помесь причём. Что, завидно? =)
Подозреваю, что четвёртого шарпа не будет в общепринятом смысле, то есть то, что они выпустят под таким именем, будет больше походить на Форт.
anonimous classesв Java это было еще до создания C#, почему они не скопировали это еще в первую версию шарпа?
var x = new { Name="", Description="Java Programmer" };
Ограничением (по крайней мере пока) использования таких типов является то, что такие типы существуют только внутри метода. Их нельзя передать наружу.
Аналогом анонимных классов в стиле Java являются анонимные делегатыда, но не совсем. Анонимный класс в Jаva это в общем случае реализация нескольких методов, а делегат это один метод. К тому же анонимный класс можно унаследовать от класса, а объявление делегата это фактически интерфейс с одним методом.
var x = new { Name="", Description="Java Programmer" };
прикольно
![](/images/graemlins/smile.gif)
в Google Talk, можно даже вот так писать:
Причем, как мне написал var x = new {Name="", Description="Java Programmer"};
var y = new {Name="", Description="Ruby Hacker"};
x = y;
nemerle уже меряются ![](/images/graemlins/smile.gif)
пока в С# только обещают, в ![](/images/graemlins/smile.gif)
Оставить комментарий
bleyman
Все видели, кому интересно?http://download.microsoft.com/download/5/8/6/5868081c-68aa-4...
Моя любимая цитата оттуда, которая позволяет оценить масштабы:
26.8 Expression trees
Expression trees permit lambda expressions to be represented as data structures instead of executable code.
Ну и sql-ный синтаксис они очень мило впихнули. И type inference. И extension methods. И анонимные типы.
Я прям весь в предвкушении =)