Неверная кодировка при выводе на консоль - C#
Формулировка задачи:
Добрый день.
Немножко не понятен момент в моем тренировочном коде.
using System;
using System.IO;
class demo
{
static void Main()
{
FileStream Test;
try
{
Test = new FileStream("C:/Users/volkov.a/Desktop/test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
}
catch(FileNotFoundException)
{
Console.WriteLine("Исключение");
return;
}
byte[] array=new byte[]{1,2,3,4,5};
Test.Write(array, 0, 5);
for (int i=0;i<array.Length;i++)
Console.WriteLine((char)array[i]);
}
}- Почему, если я убираю return из блока catch то получаю ошибку компиляции("Использование локальной переменной Test, которой не присвоено значение")?Ведь до блока catch в данном случае не доходит. А переменная инициализирована.
- Почему в создаваемом файле я получаю кракозябры, которые отличаются от вывода на консоль?
Решение задачи: «Неверная кодировка при выводе на консоль»
textual
Листинг программы
static string Example(int x)
{
if (x<0) return "х<0"; // если х<0, то метод завершится в этой строчке и вернет "x<0", дальше if'ы выполняться не будут
if (x>0) return "х>0"; // если х>0, то метод завершится в этой строчке и вернет "x>0", последний if не выполнится
if (x==0) return "х==0"; // если х==0, то метод завершится в этой строчке и вернет "x==0", все проверки будут пройдены
}