Здравствуйте. Объясните пожалуйста.
int n;
n = Console.Read();
С клавиатуры вбиваю 5, а присваивается 53. Почему именно так?
С какой целью можно использовать Console.Read();?
Здравствуйте. Объясните пожалуйста.
int n;
n = Console.Read();
С клавиатуры вбиваю 5, а присваивается 53. Почему именно так?
С какой целью можно использовать Console.Read();?
Console.Read читает только 1 символ. Все входные данные в консоли - строка. Для считывания числа используйте такую конструкцию:
int n = Int32.TryParse(Console.ReadLine()); в этом случае программа попытается конвертировать всё, что пришло к типу Int
TryParse() возвращает bool. Переменную n нужно передавать вторым параметром в качестве выходного параметра.
Console.Read(); возвращает не символ, а его код, собственно для этой цели он и используется, код цифры 5 по юникоду 53 в десятичной, или 35 в шестнадцатеричной системе.
Если нужно из кода 53 получить 5, то можно например привести к char
int code = Console.Read();
Console.WriteLine(code);
Console.WriteLine((char)code);
Подскажите есть ли для Console.ReadLine(); гарячая клавиша? Например как для
Console.WriteLine(); cw tab tab
Такие горячие клавиши называются "сниппетами" (snippets), и по-умолчанию в Visual Studio нет сниппета, который бы отвечал за Console.Read().
Однако вы можете импортировать свои собственные сниппеты. Если сохраните следующий код как .snippet и импортируете его в Visual Studio - то потом сможете при нажатии cr tab tab вызывать функцию Console.Read().
Код:
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>cr</Title>
<Shortcut>cr</Shortcut>
<Description>Code snippet for Console.ReadLine</Description>
<Author>Whoever you want it to be</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal Editable="false">
<ID>SystemConsole</ID>
<Function>SimpleTypeName(global::System.Console)</Function>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[$SystemConsole$.ReadLine();]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
Точнее как, данный код реализует сниппет Console.ReadLine(), но по сути то поменять там элементарно просто (просто везде где есть ReadLine убрать 4 последних буквы, изменив тем самым слово на просто Read)
по сути та же реализация сниппета Console.WriteLine(), только Read вместо Write