存在する場合、この例を取る:上記の例でVarのキーワード型推論曖昧インタフェースおよび実装の両方が
interface IEntity {
string Name { get; set; }
}
class Product : IEntity {
public string Name { get; set; }
public int Count { get; set; } // added member
}
class Client {
void Process() {
var product = new Product();
int count = product.Count; // this is valid
}
}
を、製品の種類は何ですか? IEntityまたはProductですか?製品は具体的な実装(製品)のタイプであると思われます。そのような場合は、特別な状況でのみvarを使用するべきではありません。しかし、resharperのようなツールは、デフォルトでvarを使うことをお勧めします。 1つのインターフェースにプログラムするべきではありませんか?
ポイントは、変数 "product"は常に "Product" varを使用する場合、実装されたクラス(Product)に余分なメンバがあるかどうか。 – Mank
'Product'が追加するメンバーを含む' IProduct'インターフェースを作ることができます。 – ironsam