举个例子:
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
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,什么是产品类型?是IEntity还是产品?看来产品是具体实施类型(产品).如果是这种情况,则不应仅在特殊情况下使用var.但我发现像resharper这样的工具建议默认使用var.不应该有一个程序到界面?
如果您有像......那样的产品怎么办?
class Product : IFirst, ISecond, IThrid
Run Code Online (Sandbox Code Playgroud)
编译器可以做的唯一合理的事情是它的作用.我不限制我的使用var,我到处使用它.我认为它使代码更具可读性.在这种情况下,我同意ReSharper的全面意见.
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |