|
Введение в классы - Main (часть 3)
МЕТОД Main
У каждого приложения на С# должен быть метод Main, определенный в одном из его классов. Кроме того, этот метод должен быть определен как public и static (ниже будет объяснено, что значит static). Для компилятора С# не важно, в каком из классов определен метод Main, а класс, выбранный для этого, не влияет на порядок компиляции. Здесь есть отличие от C++, где зависимости должны тщательно отслеживаться при сборке приложения. Компилятор С# достаточно «умен», чтобы самостоятельно просмотреть ваши файлы исходного кода и отыскать метод Main. Между тем, этот очень важный метод является точкой входа во все приложения на С#.
Вы можете поместить метод Main в любой класс, но для его размещения рекомендуется создавать специальный класс. Это можно сделать, используя простой класс MyClass.
using System;
class MyClass
{
private int MyClassID;
class AppClass
{
static public void Main()
{
MyClass MyObj = new MyClass();
}
}
}
|
Здесь два класса. Этот общий подход используется при программировании на С# даже простейших приложений. MyClass представляет собой класс предметной области, a AppClass содержит точку входа в приложение (Main). В этом случае метод Main создает экземпляр объекта MyClass, и, будь это настоящее приложение, оно использовало бы члены объекта MyClass.
Аргументы командной строки
Вы можете обращаться к аргументам командной строки приложения, объявив метод Main как принимающий аргументы типа массива строк. Затем аргументы могут обрабатываться так же, как любой массив. Хотя речь о массивах пойдет в последующих уроках, ниже приводится простой код, который по очереди выводит все аргументы командной строки на стандартное устройство вывода.
using System;
class СommandLineApp
{
public static void Main(string[] args)
{
foreach (string arg in args)
{
Console.WriteLine("Аргумент: {0}", arg);
}
}
}
|
А вот пример вызова этого приложения с парой случайно выбранных чисел:
C:\projects\CommandLine>CommandLineApp 100 200
Аргумент: 100
Аргумент: 200
Аргументы командной строки передаются в виде массива строк. Если это флаги или переключатели, их обработку вы должны запрограммировать сами.
Возвращаемые значения
Чаще всего метод Main определяется так:
using System;
class SomeClass
{
public static void Main()
{
}
}
|
Метод Main можно определить так, чтобы он возвращал значения типа int. Хотя это не является общепринятым в приложениях с графическим интерфейсом, такой подход может быть полезным в консольных приложениях, предназначенных для пакетного исполнения. Оператор return завершает исполнение метода, а возвращаемое при этом значение применяется вызывающим приложением как код ошибки для вывода определенного пользователем сообщения об успехе или неудаче.
Для этого служит следующий прототип:
public static int Main()
{
// Вернуть некоторое значение типа int,
// представляющее код завершения.
return 0;
}
|
Несколько методов Main
В С# разработчиками включен механизм, позволяющий определять более одного класса с методом Main. Зачем это нужно? Одна из причин — необходимость поместить в ваши классы тестовый код. Затем, используя переключатель /main;<имя_Класса>, компилятору С# можно задавать класс, метод Main которого должен быть задействован. Вот пример, в котором создано два класса, содержащих методы Main:
Чтобы скомпилировать это приложение так, чтобы в качестве точки входа в приложение применялся метод Main1.Main, нужно использовать переключатель:
csc MultipleMain.es /main:Main1
При изменении переключателя на /main:Main2 будет использован метод Main2.Main.
Следует соблюдать осторожность и задавать в указанном переключателе имени класса верный регистр символов, так как С# чувствителен регистру. Кроме того, попытка компиляции приложения, состоящего из нескольких классов с определенными методами Main, без указания переключателя /main, вызывает ошибку компилятора.
using System;
class Main1
{
public static void Main()
{
Console.WriteLine("Main1");
}
class Main2
{
public static void Main()
{
Console.WriteLine("Main2");
}
}
}
|
Предыдущая стр.   
Оглавление   
Следующая стр.
Средняя оценка:     (4,25 - 4 голосов) Для оценки необходимо зарегистрироваться
Только зарегистрировавшиеся пользователи могут оставлять комментарии
Комментирует andrey 16.01.2010 15:36:43 А мне вот интересно, кто писал этот материал? У меня после прочтения нескольких "уроков" создалось стойкое впечатление, что писал это школьник, который и сам не мастер в программировании.
Комментирует james 18.01.2010 9:44:56 А что не так то?
Ну во-первых ресурс для начинающих
А во-вторых может сам чего напишешь если гуру такой
Комментирует student_elets 27.01.2010 20:43:31 а мне как начинающему очень даже интересно читать данный ресурс.
Комментирует dellby 04.03.2010 17:34:30 ресурс для зарабатывания на бегуне сей момент и материал так понимаю откуда-то как-то взят.
Мне на самом деле все равно, читать удобно и примеры можно копи-пастить и смотреть как они работают. НО ошибки, вырубают когда блок текста перечитывашь по 3 раза, чтоб понять что там должно быть.
Комментирует leftCh 22.03.2010 14:43:50 Отличный ресурс и стиль изложения. Все просто быстро и компактно. Примеры работают. Можно быстро понять общий принцип. А за подробностями лучше в MSDN сходить, чем читать книги, содержащие 300 страниц с названием "Освой самостоятельно С# за 24 часа", написанные как бы профессионалами :)
Комментирует sbit 30.03.2010 17:40:06 Я думаю что сайт нормальный. Раздел "Изучаем С#" изложен не самым лучшим образом, а вот "Win-приложения" - класно. Там всё (кроме урока "Рисуем на форме") изложено очень чётко и понятно.
Комментирует -=WaRWaR=- 29.04.2010 16:04:18 все отлично, вот только объясните по последнему абзацу - как пользоваться переключателем?
Комментирует gavrikr1 07.08.2010 20:08:48 C:\projects\CommandLine>CommandLineApp /100 200
Комментирует gavrikr1 07.08.2010 22:04:42 Если в компиляцию включено несколько типов с методом Main, можно указать, какой тип содержит метод Main, который необходимо использовать в качестве точки входа в программу.
Этот параметр используется при компиляции EXE-файлов.
Установка данного параметра компилятора в среде разработки Visual Studio
Откройте страницу Свойства проекта.
Выберите страницу свойств Приложение.
Измените значение свойства Начальный объект.
Комментирует ArsLaN_young_TamerLaN 19.08.2011 13:28:53
Комментирует ArsLaN_young_TamerLaN 19.08.2011 13:30:41 a cho ob arrayi,pointers i functions, o strukture ni4ego netu
Комментирует daf.c 08.11.2011 20:13:43
Комментирует daf.c 08.11.2011 20:14:04
Комментирует Gordon 23.01.2012 22:51:13 andrey вали к чёрту если не нравится, просто тот кто писал очень опытный и понимает что новичком нужно объяснять всё подробному как малыш малышу. А ты полный придурок andrey
Комментирует dimuch2011 24.01.2012 23:36:53 andrey, уроки дійсно прикольні, тому що всім потрібно розуміти, а ти такий самовпевнений, то придумай сам щось більш оригінальніше, сумніваюсь що це в твоїх силах!
|
|