だから私たちは書きます:
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#の動的キーワードを使用しても、変数「タイプ」を使用しています(実行時に決定されます)。しかし、なぜ変数に型が必要なのでしょうか。確かに理由はあるに違いないが、考えられない!
var
C#で使用でき、変数を宣言する場所を明示することは常に適切です。