Основы C#. Урок 2. Что такое NET Runtime?
Если перевести слова NET Runtime на русский язык, то мы
получим что-то вроде "Среда выполнения". Именно вы этой среде
и выполняется код, получаемый в результате компиляции
программы написанной на C#. NET Runtime основын не на
ассемблере (т. е. не на коде, родном для процессора), а на
некотором промежуточном коде. Отдаленно он напоминает
виртуальную Java машину. Только если в случае Java у нас был
только один язык для виртуальной машины, то для NET Runtime
таких языков может быть несколько. Теоретически программа для
среды NET Runtime может выполняться под любой операционной
системой, в которой NET Runtime установлена. Но на практике
пока единственная платформа для этого - это Windows.
NET Runtime состоит из нескольких частей. Одна из них - это
Common Language Runtime. Это, говоря кратко, это некоторый
набор стандартов, котрые должны поддерживать все языки
платформы .NET. Например, в предыдущих версиях Visual Studio
была такая проблема, что разные языки по разному хранили
данные одного по идее типа. Так, скажем, тип целого в Visual
Basic'е занимал два байта, а в Visual C++ - четыре. А это
порождало кучу проблем при совместном использовании языков.
Так вот, Common Language Runtime как раз в частности и
определяет стандартные для все языков .NET типы данных. И уже
есть гарантии, что целый тип в одном языке будет в точности
соответствовать одноименному типу в другом.
Еще одна важная часть NET Runtime - это набор базовых
классов. Их очень много (порядка несколько тысяч). Кроме того,
эти классы относятся не к конкретному языку, а к NET Runtime.
Т. е. мы получаем набор классов, общий для всех языков .NET,
что достаточно удобно.
Далее. Именно NET Runtime берет на себя некоторые рутинные
функции. Например в нем организована сборка мусора. И если
раньше программисту приходилось самому освобождать объекты,
созданные динамически, то теперь эту задачу берет на себя
среда NET Runtime. Еще одно свойство среды NET Runtime - это
проверка типов. Означает это вот что. Когда программа
выполняется, то в принципе некоторой функции можно подсунуть
параметр неправильного типа. Скажем вместо целого подставить
действительное число или еще что-нибудь в этом роде. Языки
типа C++ свои параметры функций не проверяют, в результате
чего записанная переменная большего размера может повредить
чужую область памяти и программа может просто рухнуть. Еще
классический пример на эту тему - это выход за пределы
массива. В NET Runtime же такого невозможно. NET Runtime сама
позаботится о проверке типов и других вещах.
Существует несколько языков для NET Runtime. В настоящее
время это C#, VB.NET и Visual C++. Кроме того фирма Borland
объявила, что ее продукты C++ Builder и Delphi тоже будут
поддерживать NET
Runtime. |