Pra*_*tik 14 .net c# var class visual-studio
可能重复:
在方法之外使用var
class A {
string X;
}
// Proper
class A {
var X;
}
// Improper (gives error)
Run Code Online (Sandbox Code Playgroud)
为什么,我不能在类中使用var类型变量声明,为了实现它可以做些什么或者什么是替代?
在函数/方法中,我可以声明一个var类型变量,那么为什么不能,我在课堂上这样做?
谢谢.
Mar*_*ell 20
// method variable
var X;
Run Code Online (Sandbox Code Playgroud)
是永远有效的-即使在方法内部; 你需要立即初始化来推断类型:
// method variable
var X = "abc"; // now a string
Run Code Online (Sandbox Code Playgroud)
至于为什么这不适用于场与现场初始化:简单地说,该规范是这么说的.现在为什么规范说的是另一个辩论...我可以检查注释的规范,但我怀疑它们对于方法变量更为必要,其中逻辑更复杂(重新LINQ等).此外,它们通常与匿名类型一起使用(这是它们存在的必要性); 但匿名类型不能暴露在公共API上...所以你可能会非常困惑:
private var foo = new { x = 123, y = "abc"}; // valid
public var bar = new { x = 123, y = "abc"}; // invalid
Run Code Online (Sandbox Code Playgroud)
总而言之,我对目前的逻辑很满意.
如果你真的不知道实例变量将保持的对象类型,请使用object,而不是var.var并不意味着"我不知道",它意味着"为我推断出类型" - 这就是为什么它永远不能用于班级成员.
| 归档时间: |
|
| 查看次数: |
16005 次 |
| 最近记录: |