Więc piszemy:
Customer c = new Customer();
Dlaczego projekt nie jest taki, że piszemy:
c = new Customer();
c.CreditLimit = 1000;
Kompilator może obliczyć c punktów dla klienta i pozwolić na wywoływanie członków klienta na c?
Wiem, że możemy chcieć napisać:
IPerson c = new Customer();
IPerson e = new Employee();
aby móc pisać:
public string GetName(IPerson object)
{
return object.Name
}
string name = GetName(c); // or GetName(e);
Ale gdybyśmy napisali:
c = new Customer();
e = new Employee();
nadal możemy napisać:
public string GetName(object)
{
return object.Name
}
string name = GetName(c); // or GetName(e);
Kompilator może narzekać na kod bezpośrednio powyżej, jeśli typ odwołania do obiektu c nie obsługuje właściwości Name (ponieważ może sprawdzić, które elementy są używane w argumencie / parametrze w metodzie), lub środowisko wykonawcze może narzekać.
Nawet w przypadku dynamicznego słowa kluczowego C # nadal używamy zmiennej „typ” (określonej w czasie wykonywania). Ale dlaczego zmienna w ogóle potrzebuje typu? Jestem pewien, że musi być dobry powód, ale nie mogę o tym myśleć!
var
w języku C # i bycie obeznanym z tym, gdzie chcesz zadeklarować zmienną, jest zawsze dobre.