Dlaczego muszę przypisać wartość do int w C #, gdy domyślnie jest to 0?

To działa:

class MyClass
{
    int a;

    public MyClass()
    {
        int b = a;
    }
}

Daje to jednak błąd kompilatora („Użycie nieprzypisanej zmiennej lokalnej„ a ””):

class MyClass
{
    public MyClass()
    {
        int a;
        int b = a;
    }
}

O ile wiem, dzieje się tak, ponieważ w pierwszym przykładzie technicznie kompilator nie wie, że nie przypisano „a”. W tym ostatnim przykładzie „a” jest zdefiniowane lokalnie i dlatego jest łatwe do śledzenia.

Ale dlaczego ten drugi przykład nie działa?

Czy liczby całkowite nie są ustawione domyślnie na 0? Czy jest to coś, co kompilator wymusza dla „najlepszych praktyk”. Czy jest inny powód?

questionAnswers(5)

yourAnswerToTheQuestion