?

Log in

dotnet :: nullable types - [darxeth digital]
View:Свежие записи.
View:Архив.
View:Друзья.
View:Личная информация.
View:Website (RSS-Feed).
View:RSS трансляция. ATOM трансляция.

Security:
Subject:dotnet :: nullable types
Time:11:37 pm
Очень интересная дискуссия по поводу поддержки Nullable<T> в Visual C# 2.0.
Там есть пример нового синтаксиса, о котром я не знал:
int? a;
bool? b;
что аналогично обычному
Nullable<int> a;
Nullable<bool> b;
Кроме всего прочего, это очень напоминает синтаксис замечательного языка Xen.
Становится понятнее, каким образом в Xen будут работать int?, int+ и int*.

Ещё там объясняется, что возможность примения операторов к двум величинам типа Nullable<T> сделана именно на уровне компилятора. Меня давно интересовал этот вопрос, ведь стандартными средствами языков C# и VB 2005 сделать подобное перенаправление операторов невозможно.

Но дискуссия интересна не только этим, а предложением ввести типы вроде string!, для которых запрещено было бы значение null. Сделав такой запрет на уровне типа (с автоматической генерацией исключения при попытке присвоить этому типу null), можно было бы оставить основные проверки на null компилятору.

Эта идея мне, как поклоннику проверок в design time, очень нравится. Идеальной, конечно, была бы возможность куда более общие условия на значения, что-нибудь вроде restricted<0..300> int a с возможностью неявного кастинга от менее жёстких условий к более жёстким. Особенно ценная возможность для параметров процедур, конечно.

Если C# дойдёт о такой возможности, у меня почти не останется сомнений на каком языке писать.

P.S. Кстати, в комментариях упоминается странный язык Cω и есть ссылка на презентацию.
Я ничего о нём не знал, интересно.

Update: Ага, язык Cω - это просто новое название для Xen. Мда. Найти что-нибудь в Google для языка с таким названием будет непросто. Название 'X#' нравилось мне куда больше.

Update 2: Я не совсем прав - это не просто Xen, а Xen (X#) + Polyphonic C#.

.netcomegaprogramming_languageswhidbeycsharp
comments: Оставить комментарий Previous Entry Поделиться Next Entry

dotnet :: nullable types - [darxeth digital]
View:Свежие записи.
View:Архив.
View:Друзья.
View:Личная информация.
View:Website (RSS-Feed).
View:RSS трансляция. ATOM трансляция.