我对var
关键字
我已经在表单加载
中定义了它public partial class form1 :form
{
public var a;
private void form1_load(object sender, eventargs e)
{
// i have used "a" like this....
a = abc.members blahhhh blahhhhh
bindingsource1.datasource = a;
datagridview1.datasource = bindingsource1;
}
}
但是我在这一行得到了错误
public Var a;
无法定义类型或命名空间名称'var'
我可以定义公共类变量,以便我可以访问该类中的所有方法吗?
答案 0 :(得分:3)
var
与其他语言中的var
不同;在C#中,您使用var
让编译器为您确定某个局部变量的类型,但您不能使用它来声明字段/属性。
您必须指定实际类型。我不知道a
是什么,所以我不能告诉你使用什么类型。
答案 1 :(得分:2)
您必须使用具体类型而不是var - 例如“string”,“int”,...
这是因为“var”只是句法上的含糖。 compliler干扰混凝土类型并插入而不是var。在你的情况下,这是不可能的,因为编译器看起来不会像form_load那样 - 它只是查看“=”之后的表达式
作为旁注:您不应将字段定义为公共字段。将它们设为私有,并为它们定义公共访问者或公共财产。通过这种方式,您不会将内部实现细节泄露给外部世界,如果您想稍后更改此实现细节,则不会出现任何问题。
答案 2 :(得分:0)
如果要将其设置为公共(而不是本地)变量,则必须将其声明为特定类型,例如“string”,“int”或自写类
答案 3 :(得分:0)
具有隐式类型var的变量必须在方法范围内声明。
答案 4 :(得分:0)
public int a;
就足够了,我想。
按照, http://msdn.microsoft.com/en-us/library/bb383973.aspx
只有在方法范围声明的变量才能具有隐式类型var
当您需要这个linq查询时,您可以在运行查询的任何地方(在函数内)分配显式类型的公共变量。例如,
func()
{
var results = from p1 in phones where p1.name="abc";
MyPublicVariable = results;
}
MyPublicVariable 可以是可枚举的。