zlogic (08.07.2006 07:20, просмотров: 1) ответил FDA на Вот пример
Действительно, компилятор выдал ошибку... Но... private void button1_Click(object sender, EventArgs e)
{
byte b;
int c;
c = b + 5;
}
на эту конструкцию компилятор сказал, что используется переменная b, которой ничего НЕ ПРИСВАИВАЛОСЬ. Речь не об инициализации и чистке памяти, о которых речь шла выше.
В си-шарпе речь не о том, что надо делать вот так всегда:
private void button1_Click(object sender, EventArgs e)
{
byte b = 0;
int c;
c = b + 5;
}
А о том, что, прежде чем использовать переменную, программист в неё должен поместить что-то осмысленное.
Это просто умный анализ кода компилятором. Кода, который не имеет смысла.
Об этом же свидетельствует отсутствие реакции компилятора си-шарпа на неинициализацию переменной "с".
Хотя, с другой стороны, никто не мешает почистить память в другом месте кода, как это делается в СТАРТАПЕ в проектах кейла...
Память обнулится, а си-шарп ругнётся, хотя объявленные переменные инициализированы нулями...