функция языка против фреймворка - PullRequest
5 голосов
/ 03 ноября 2010

Мне было интересно, где вы проводите грань между функцией языка программирования и платформой.

Например, является ли Linq функцией языка C # или .NET. Работает ли язык программирования как спецификация для платформы?

Ответы [ 6 ]

7 голосов
/ 03 ноября 2010

Я полагаю, что ответ, в случае вашего примера, оба.

Методы расширения, которые включают Linq, являются функцией платформы .Net. Однако языковые конструкции, которые переводятся в вызовы этих методов расширения, являются особенностью языка C #. Вы можете использовать те же методы расширения из VB, но вы не можете использовать те же языковые конструкции.

Таким же образом вы можете использовать Linq to XML из обоих языков, но только VB имеет литералы XML.

4 голосов
/ 03 ноября 2010

Это трудная линия для рисования, и LINQ является хорошим примером этого:

3 голосов
/ 03 ноября 2010

LINQ - это функция .NET, так как она доступна на всех CLS-совместимых языках.Оператор yield является функцией языка C #.

2 голосов
/ 03 ноября 2010

Linq является частью .Net Framework начиная с версии 3.5

Спецификацию C # можно найти здесь .

1 голос
/ 03 ноября 2010

Хм, интересный вопрос..NET на самом деле больше похожа на библиотеку, однако она полностью интегрирована в язык, поэтому для того, чтобы использовать многие функции языка, необходимо включить ее.Поэтому я полагаю, что определяющим фактором является то, должен ли быть включен .NET, чтобы эта функция существовала.В случае Linq у вас должен быть включен .NET, так что я бы сказал, что это просто функция .NET, а не языковая функция.

0 голосов
/ 03 ноября 2010

LINQ является Компонентом Фреймворка:

Чтобы использовать Linq, необходимо добавить пространство имен "Linq".Вы не можете сказать, что такое FileStream, который является расширением языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...