所以我们写:
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#的dynamic关键字,我们仍在使用变量“类型”(在运行时确定)。但是,为什么变量根本需要类型?我敢肯定一定有一个很好的理由,但是我想不到!
var
在C#中使用,并且明确声明要在何处声明变量总是好的。