Рассмотрим программу на рис. 1-4- Для начинающих: в каждом приложении должна быть точка входа. В Си-приложении таковой является статический метод с именем Main. Он есть в каждом С#-приложении. Так как в С# каждый метод должен принадлежать какому-либо типу, в Hello.cs метод Main является членом МуАрр. В имени класса ничего волшебного. Мы могли бы назвать его Foo, и он работал бы так же. Если в приложении несколько классов с методами Main, класс, содержащий точку входа приложения указывается с ключом компилятора /main.
Единственный оператор в MyAppMain — оператор вывода фразы «Hello, world» в консольное окно. В обычном Windows-приложении на С или C++ вы, вероятно, использовали бы для этой u.tjii\printf. Однако у нас не стандартное Windows-приложение, но приложение .NET Framework, которое для вывода в консольные окна использует FCL. Пространство имен System FCL для работы с консольными окнами предоставляет класс Console. В справочнике по FCL указано, что в данном классе имеется статический метод WriteLine, выводящий строку текста в окно (или в иное место, на которое в настоящий момент указывает стандартный вывод).
Оператор: using System;
в начале программы служит для упрощения набора. Как вы помните, FCL содержит более 7 000 членов, расположенных примерно в 100 пространств имен. В отсутствие директивы using пришлось бы квалифицировать ссылку на Console, указав перед именем класса имя пространства имен:
System.Console.WriteLine ("Hello, world");
Благодаря же using, достаточно указать только само имя класса. В данном примере это не очень существенно, но, создавая программу с сотнями и даже тысячами ссылок на классы FCL, вы сполна оцените возможность не писать названия пространств имен снова и снова. Директива using или ее эквивалент поддерживается большинством языков программирования. В Visual Basic .NET она называется Imports.
А что, если вы используете в своем приложении два одноименных класса из разных пространств имен? Все очень просто: вам придется квалифицировать такие ссылки. Этот код не компилируется, так как класс ListBox есть в обоих пространствах имен:
using System.Windows.Forms;
using System.Web.UI.WebControls;
ListBox winLB = new ListBox (); // Создать ListBox из Windows Forms.
ListBox webLB = new ListBox (); // Создать ListBox из Web Forms.
У вас две возможности. Первая — использовать полностью квалифицированные имена классов:
System.Windows.Forms.ListBox winLB = new System.Windows.Forms.ListBox ();
System.Web.UI.WebControls.ListBox webLB = new System.Web.UI.WebControls.ListBox ();
Вторая — использовать альтернативную форму директивы using для создания псевдонимов (alias) полностью квалифицированных имен:
using winListBox = System.Windows.Forms.ListBox;
using webListBox - System.Web.UI.WebControls.ListBox;
winListBox winLB = new winListBox (); // Создать ListBox из Windows Forms.
webListBox webLB = new weblistBox (); // Создать ListBox из Web Forms.
Этот пример, конечно, надуман, так как вам, вероятно, никогда не придется использовать оба класса ListBox в одной программе (по крайней мере я не могу представить себе такой необходимости). Однако сам принцип работает в любом случае.
Похожие статьи: