Добавлен VessTER,
опубликован
Раздел:
C#
В данной статье автор начнет с основ C#. Или не основ? Не важно! Важно то, что в C# есть полный мешок вариантов как скопипастить код "Hello ALL!", который новичок сразу не утащит.
Внимание! Данная статья не рекомендована лицам с высоким порогом горения, по причине крайне странного диалекта русского языка использованным автором, пометки "Crazy" и перегруженного содержания
Данная статья не обучающая, и не является насмешка над языком.
Статья задумывалась для показа читателям какими способами можно вывести "Привет мир" на консоль в виде краткого обзора языка.
Статья задумывалась для показа читателям какими способами можно вывести "Привет мир" на консоль в виде краткого обзора языка.
void main()
{
Console.WriteLine("Hello World!");
}
Классика
Начнем с классики жанра:
static void Main()
{
Console.Write("Hi All!"); // Классический способ вывести сообщение "Hi All" в консоль
// Console.ReadKey(); // Закомментированный статический метод ReadKey() класса System.Console возвращающий объект System.ConsoleKeyInfo
}
Разбираемся. Так как автор давно ушел в дары MS'ту, он не знает другого классического способа, способного работать в VS Visual C#. Здесь указывается, что авторы языка работали на MS, если Вы не знакомы с данным языком рекомендую почитать.
Класс Console является статичным. Это означает, что скомпилированная программа создаст единственный и неповторимый объект данного класса, с которым и будет взаимодействовать программа. И да все его поля, свойства и методы также статичны.
Console.Write() - Метод вывода сообщений на консоль, умеет выводить строки, различные числа, даты и объекты с определенным методом String ToString(). Первоначально метод ToString() определен классом System.Object и возвращает строку типа "{...}" в которой перечисляются характеристики, поля и их значения.
Также в качестве входных параметров можно указать форматирующую строку типа "A = {0}" а дальше через запитую указать аргументы форматирования. Так это выглядит:
Класс Console является статичным. Это означает, что скомпилированная программа создаст единственный и неповторимый объект данного класса, с которым и будет взаимодействовать программа. И да все его поля, свойства и методы также статичны.
Console.Write() - Метод вывода сообщений на консоль, умеет выводить строки, различные числа, даты и объекты с определенным методом String ToString(). Первоначально метод ToString() определен классом System.Object и возвращает строку типа "{...}" в которой перечисляются характеристики, поля и их значения.
Также в качестве входных параметров можно указать форматирующую строку типа "A = {0}" а дальше через запитую указать аргументы форматирования. Так это выглядит:
Console.Write("{0} {1}!", "Hello", "World");
// Hello World!
Также существует метод WriteLine(), роль которого такая же, что и у Write(), но он дополнительно переводит курсор строки на новую строку. Оба эти метода ничего не возвращают (хотя... возвращают void, но это тоже самое что и не чего)
Console.ReadKey() - функция ожидания нажатия клавиши клавиатуры. Имеет схожую роль с system("pause") из C++, но вместо ожидании нажатия ENTER, она срабатывает на любой клавише. На system("pause") больше похожи методы Console.Read() и Console.ReadLine(), но про них будет описание в другой статье. ReadKey() возвращает объект ConsoleKeyInfo, который можно использовать для проверки какая клавиша была нажата или сочетание клавиш (CTRL, ALT, SHIFT). Описание на MSDN (+пример).
Crazy Mode
Далее я приведу несколько извращенных способов вывода "Hello World!" на консоль используя возможности языка.
static void Main()
{
char[] CrazyWorld = new char[] { 'H','e','l','l','o',' ','W','o','r','l','d','!'};
Console.WriteLine(CrazyWorld);
Console.ReadKey();
// Получаем Hello World!
}
static void Main()
{
char[] CrazyWorld = new char[] { 'H','e','l','l','o',' ','W','o','r','l','d','!'};
foreach(var i in CrazyWorld) Console.Write(i);
Console.ReadKey();
// Все тот же Hello World!
}
static void Main()
{
char[] CrazyWorld = new char[] { 'H','e','l','l','o',' ','W','o','r','l','d','!'};
for(var i = 0; i < CrazyWorld.Length; i++) Console.Write(CrazyWorld[i]);
Console.ReadKey();
}
static void Main()
{
string CrazyWorld = "Hello STALKER";
Console.Write(CrazyWorld.Substring(0,6)); // Подстрока 6-той символ пробел
for(var i = 6; i < CrazyWorld.Length; i++) Console.Write("{0}.", CrazyWorld[i]);
Console.ReadKey();
// Hello S.T.A.L.K.E.R.
}
А теперь десерт!
namespace HelloWorld
{
/// <summary>
/// Объекты будут приветствовать Вас
/// </summary>
class HelloYou
{
string YourName;
public HelloYou(string name)
{
YourName = name;
}
public override string ToString() // Переопределяем реализацию Object.ToString()
{
return "Hello " + YourName + '!';
}
}
/// <summary>
/// Код сей проги поведает каким извращенцем может быть C#-прогер
/// </summary>
class Program
{
static void Main()
{
HelloYou helloQuest = new HelloYou("Quest");
Console.WriteLine(helloQuest);
Console.WriteLine(new HelloYou("Author"));
Console.ReadKey();
// Hello Quest!
// Hello Author!
}
}
}
В примере выше автор создал класс HelloYou с конструктором принимающий имя того с кем нужно будет поздороваться экземпляру класса. В классе переопределяем метод ToString(), иначе в консоли мы увидим "HelloWorld.HelloYou". В главном методе создаем объект нашего класса как положено и кидаем его в консоль. Второй свежо испеченный объект также отправляется следом.
Статья подошла к концу (на большее не один из модераторов не согласится, все мы люди...) А что не было изложено сейчас, будет изложено в следующих статьях.
Автор рад и благодарит Вас за Ваше внимание. Желает всего хорошего!
Автор рад и благодарит Вас за Ваше внимание. Желает всего хорошего!
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Мда, а до меня и не доходили мысли типа
Надо будет запомнить :)