Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C# 4.0 ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство - 2011Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 101

Автор Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚ Π¨ΠΈΠ»Π΄Ρ‚

НаТмитС ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, Π° Π·Π°Ρ‚Π΅ΠΌ β€” <ENTER>: t Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ: t

ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ построчно Π²Π²ΠΎΠ΄, осущСствля^Π΅ΠΌΡ‹ΠΉ с консоли посрСдством ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Read (), ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ досадным прСпятствиСм. Π’Π΅Π΄ΡŒ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши <Enter> Π² ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π° пСрСдаСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, эти символы ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ считаны. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прилоТСниях приходится ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ эти символы (ΠΏΡƒΡ‚Π΅ΠΌ ΠΈΡ… считывания), ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, для чтСния Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ символов Π±Π΅Π· построчной Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ рассматриваСмым Π΄Π°Π»Π΅Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ReadKey (). Π”Π»Π΄ считывания строки символов слуТит ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ReadLine ().

static string ReadLine()

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ReadLine () Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ <Enter>, Π° Π·Π°Ρ‚Π΅ΠΌ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ символы Π² Π²ΠΈΠ΄Π΅

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° string. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ сгСнСрируСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ IOException ΠΏΡ€ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΌ исходС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ дСмонстрируСтся Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ строки ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ° Console . In с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ReadLine ().

// Π’Π²ΠΎΠ΄ с консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ReadLine().

using System;

class ReadString { static void Main() { string str;

Console.WriteLine("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ нСсколько символов."); str = Console.ReadLine();

Console.WriteLine("Π’Ρ‹ Π²Π²Π΅Π»ΠΈ: " + str);

}

}

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ.

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ нСсколько символов.

Π­Ρ‚ΠΎ просто тСст.

Π’Ρ‹ Π²Π²Π΅Π»ΠΈ: Π­Ρ‚ΠΎ просто тСст.

Π˜Ρ‚Π°ΠΊ, для чтСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ° Console. In ΠΏΡ€ΠΎΡ‰Π΅ всСго Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ класса Console. Но для этой Ρ†Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса TextReader. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Rea.dLine (), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² классС TextReader.

// ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ строку // нСпосрСдствСнно ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ° Console.In.

using System;

class ReadChars2 { static void Main() { string str;

Console.WriteLine("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ нСсколько символов.");

str = Console.In.ReadLine(); // Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ReadLine() класса TextReader Console.WriteLine("Π’Ρ‹ Π²Π²Π΅Π»ΠΈ: " + str);

}

}

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ReadLine () Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вызываСтся нСпосрСдствСнно для ΠΏΠΎΡ‚ΠΎΠΊΠ° Console . In. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли трСбуСтся доступ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π² классС TextReader, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ для ΠΏΠΎΡ‚ΠΎΠΊΠ° Console. In, Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ReadKey ()

Π’ состав срСды .NET Framework Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄, опрСдСляСмый Π² классС Console ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ нСпосрСдствСнно ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ символы Π±Π΅Π· построчной Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ называСтся ReadKey (). ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши ΠΌΠ΅Ρ‚ΠΎΠ΄ ReadKey () Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ символ. И Π² этом случаС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡƒΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ <Enter>. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠ΅Ρ‚ΠΎΠ΄ ReadKey () позволяСт ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π΄Π²Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ объявлСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ReadKey ().

static ConsoleKeylnfo ReadKey()

static ConsoleKeylnfo ReadKey(bool intercept)

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° оТидаСтся Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши. Когда ΠΎΠ½ΠΎ происходит, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ символ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ Π½Π° экран. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ оТидаСтся Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши, ΠΈ Π·Π°Ρ‚Π΅ΠΌ возвращаСтся Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ символ. Но Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° intercept Ρ€Π°Π²Π½ΠΎ true, Ρ‚ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ символ Π½Π΅ отобраТаСтся. А Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° intercept Ρ€Π°Π²Π½ΠΎ false, Ρ‚ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ символ отобраТаСтся.

ΠœΠ΅Ρ‚ΠΎΠ΄ ReadKey () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Ρ‚ΠΈΠΏΠ° ConsoleKeylnfo, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой структуру, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ свойств, доступных Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния.

char KeyChar ConsoleKey Key ConsoleModifiers Modifiers

Бвойство KeyChar содСрТит эквивалСнт char Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ символа, свойство Key β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· пСрСчислСния ConsoleKey всСх клавиш Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅, Π° свойство Modifiers β€” описаниС ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… клавиш (<Alt>, <Ctrl> ΠΈΠ»ΠΈ <Shift>), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π½Π°ΠΆΠ°Ρ‚Ρ‹, Ссли это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π»ΠΎ мСсто, ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π²ΠΎΠ΄Π° с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Π­Ρ‚ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ клавиши прСдставлСны Π² пСрСчислСнии ConsoleModifiers ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями: Control, Shift ΠΈ Alt. Π’ свойствС Modifiers ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π°ΠΆΠ°Ρ‚Ρ‹Ρ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… клавиш.

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ReadKey () Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ прСдоставляСт срСдства для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π° с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот Π²Π²ΠΎΠ΄ Π½Π΅ буфСризуСтся построчно. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² дСйствии, Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

// Π‘Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ символы, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ с консоли, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ ReadKey().

using System;

class ReadKeys {

static void Main() {

ConsoleKeylnfo keypress;

Console.WriteLine("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ нСсколько символов, " +

"Π° ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ - <Q>.");

do {

keypress = Console.ReadKey(); // ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π½Π°ΠΆΠ°Ρ‚Ρ‹Ρ… ΠΊΠ»Π°Π²ΠΈΡˆΠ°Ρ… Console.WriteLine(" Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ: " + keypress.KeyChar);

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… клавиш.

if((ConsoleModifiers.Alt & keypress.Modifiers) != 0)

Console.WriteLine("НаТата клавиша <Alt>."); if((ConsoleModifiers.Control & keypress.Modifiers) != 0)

Console.WriteLine("НаТата клавиша <Control>."); if((ConsoleModifiers.Shift & keypress.Modifiers) != 0)

Console.WriteLine("НаТата клавиша <Shift>.");

} while(keypress.KeyChar != ' Q');

}

}

Π’ΠΎΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ нСсколько символов, Π° ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ - <Q>.

Π° Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ: Π°

b Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ: b

d Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ: d

А Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ: А

НаТата клавиша <Shift>.

Π’ Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ: Π’

НаТата клавиша <Shift>.

Π‘ Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ: Π‘

НаТата клавиша <Shift>.

β€’ Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ: β€’

НаТата клавиша <Control>.

Q Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ: Q

НаТата клавиша <Shift>.

/

Как слСдуСт ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° наТимаСтся клавиша, ΠΌΠ΅Ρ‚ΠΎΠ΄ ReadKey () Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ символ.*Π­Ρ‚ΠΈΠΌ ΠΎΠ½ отличаСтся ΠΎΡ‚ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π²ΡˆΠ΅Π³ΠΎΡΡ Ρ€Π°Π½Π΅Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Read (), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Π²ΠΎΠ΄ выполняСтся с построчной Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли трСбуСтся Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° Π²Π²ΠΎΠ΄ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Ρ‚ΠΎ рСкомСндуСтся Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ReadKey ().

Π—Π°ΠΏΠΈΡΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° консоль

ΠŸΠΎΡ‚ΠΎΠΊΠΈ Console . Out ΠΈ Console .Error ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° TextWriter. Π’Ρ‹Π²ΠΎΠ΄ Π½Π° консоль ΠΏΡ€ΠΎΡ‰Π΅ всСго ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Write () ΠΈ WriteLine (), с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· встроСнных Ρ‚ΠΈΠΏΠΎΠ². Π’ классС Console ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΅Π³ΠΎ собствСнныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Write() nWriteLine(),n поэтому ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ нСпосрСдствСнно для класса Console, ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ ΡƒΠΆΠ΅ Π½Π΅ Ρ€Π°Π· ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° страницах Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ. Но ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ эти ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΈ для класса TextWriter, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Console . Out ΠΈ Console . Error.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ дСмонстрируСтся Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΏΠΎΡ‚ΠΎΠΊΠΈ Console . Out ΠΈ Console . Error. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠ±ΠΎΠΈΡ… случаях выводятся Π½Π° консоль.

// ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΏΠΎΡ‚ΠΎΠΊΠΈ Console.Out ΠΈ Console.Error.

using System;

class ErrOut {

static void Main() { int a=10, b=0; int result;

Console.Out.WriteLine("Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΡƒΠ»ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ " +

"ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ситуации.");

try {

result = Π° / b; // ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ дСлСния Π½Π° Π½ΡƒΠ»ΡŒ } catch(DivideByZeroException exc) {

Console.Error.WriteLine(exc.Message);