2014-09-29 8 views
0

Я даже не уверен, как мне задать этот вопрос, чтобы вы все получили то, о чем я прошу.Как ключевые слова работают на C#?

Мне интересно, как ключевые слова работают на языках программирования, будучи конкретными, C#. В приведенном ниже коде:

using System; 
namespace TestApplication 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string s = "Hello"; 
      Console.WriteLine(a.ToString()); 
      Console.ReadLine(); 
     } 
    } 
} 

Здесь Console предопределенный класс System пространства имен, который находится в mscorlib.dll. Поэтому, когда компилятор/CLR встречает Console.WriteLine(), он будет вызывать статический метод WriteLine() с соответствующей перегрузкой.

Таким образом, определение метода WriteLine и Console классов все уже записано и хранится в пространстве имен System для сборки mscorlib.

Но мой вопрос, когда компилятор/CLR встречается с ключевыми словами, как using, namespace, class, static, что он делает? Где написано, что он должен относиться к слову рядом с ключевым словом class как новый тип? Он встроен в компилятор/CLR? Как это работает?

+2

Ключевое слово - ключевое слово. Компилятор знает, когда дело доходит до слова «класс», что он должен что-то делать с тем, что следует (скомпилируйте его в новый класс). Это запрограммировано в компиляторе и указано в спецификациях языка C#. –

+1

Проверьте «книгу драконов» или любую другую книгу/статью о компиляторах ... –

+0

Не стесняйтесь [скачать спецификацию] (http://www.microsoft.com/en-us/download/details.aspx?id= 7029), если вы действительно этого хотите. –

ответ

2

Ключевые слова C#, которые вы можете увидеть полный список here, встроены в CSC compller. Когда компилятор сталкивается с любым ключевым словом, он запрограммирован, чтобы знать, чего ожидать и что делать.

1

Это часть компилятора, а не BCL. Просмотрите language specification, в котором объясняется, что именно должен делать компилятор, когда он сталкивается с любым из ключевых слов.

Смежные вопросы