Видели ли вы, что новая структура Контракты станет частью .NET 4.0?
Преимущество создания библиотеки, а не языковой функции, заключается в том, что она сразу становится доступной на всех языках без какой-либо работы со стороны языковых команд. Очевидно, есть и недостатки ...
Ссылки:
Сказав все это, я бы хотел написать:
public Stream! Foo(string! x)
, что указывает на то, что Foo не должен получать нулевую ссылку и не будет возвращать ее. Я думаю, что иметь дополнительный бит синтаксиса для просто такого типа контракта было бы удобно.