Тому пишемо:
Customer c = new Customer();
Чому дизайн не такий, про який ми пишемо:
c = new Customer();
c.CreditLimit = 1000;
Компілятор може розробити c пункти до Клієнта та дозволити членам Замовника викликати c?
Я знаю, що ми можемо захотіти написати:
IPerson c = new Customer();
IPerson e = new Employee();
щоб мати можливість писати:
public string GetName(IPerson object)
{
return object.Name
}
string name = GetName(c); // or GetName(e);
Але якщо ми написали:
c = new Customer();
e = new Employee();
ми ще могли написати:
public string GetName(object)
{
return object.Name
}
string name = GetName(c); // or GetName(e);
Компілятор може скаржитися на код безпосередньо вище, якщо тип посилань на об'єкт c не підтримує властивість Name (оскільки він може перевірити, які члени використовуються в аргументі / параметрі в рамках методу), або час виконання може скаржитися.
Навіть з динамічним ключовим словом C # ми все ще використовуємо змінну 'type' (визначається під час виконання). Але навіщо змінній взагалі потрібен тип? Я впевнений, що має бути вагома причина, але я не можу про це думати!
var
в C # і пояснювати, де ви хочете оголосити змінну, завжди добре.