Console.WriteLine("Текущий каталог: {0}: ", Environment.CurrentDirectory);
// Список дисководов на данной машине.
string[] drives = Environment.GetLogicalDrives;
for (int i = 0; i ‹ drives.Length; i
Console.WriteLine("Диск {0}: {1} ", i, drives[i]);
// Версия .NET-платформы, выполняемая на машине.
Console.WriteLine("Выполняемая версия .NET: {0} ", Environment.Version);
…
}
Возможный вариант вывода показан на рис. 3.3.
Рис. 3.3. Переменные окружения за работой
Тип System.Envirоnmеnt содержит определения и других членов, а не только представленных в данном примере. В табл. 3.1 показаны некоторые интересные свойства, но непременно загляните в документацию .NET Framework 2.0 SDK, чтобы узнать подробности.
Таблица 3.1. Некоторые свойства System.Environment
Свойстве | Описание |
---|---|
MashineName | Имя текущей машины |
NewLine | Символ перехода на новую строку для текущего окружения |
ProcessorCount | Число процессоров текущей машины |
SystemDirectory | Полный путь к системному каталогу |
UserName | Имя модуля, запустившего данное приложение |
Определение классов и создание объектов
Теперь, когда вы знаете о роли Main, перейдем в задаче построения объектов. Во всех объектно-ориентированных языках делается четкое различие между классами и объектами. Термин
using System;
class HelloClass {
public static int Main(string[] args) {
// Ошибка! Используется неинициализированная локальная
// переменная. Следует использовать 'new'.
HelloClass c1;
с1.SomeMethod;
…
}
}
Чтобы использовать правильные процедуры для создания объектов, внесите следующие изменения.
using System;
class HelloClass {
public static int Main(string[] args) {
// Можно объявить и создать объект в одной строке…
HelloClass с1 = new HelloClass;
//…или указать объявление и создание в разных строках.
HelloClass c2;
с2 = new HelloClass;
…
}
}
Ключевое слово new отвечает за вычисление числа байтов, необходимых для заданного объекта, и выделение достаточного объема управляемой динамической памяти (managed heap). В данном случае вы размещаете два объекта типа класса HelloClass. Следует понимать, что объектные переменные C# на самом деле являются
Роль конструкторов
До сих пор объекты HelloClass строились с помощью