c#属性是什么时候生成的
我在一个类库里面写上
string s = "a";
SqlConnection sql=new SqlConnection(s)
这时传入的参数s说找不到
这是为什么
我问老师,老师说c#和java不同
是先要实例化一个对象,才会有他的属性.
我试着把它改成静态的
static string s = "a";
SqlConnection sql=new SqlConnection(s)
s能找到了
但我还是不明白这段如果在JAVA中这样写的话是没问题
为什么在C#中不行呢
我在一个类库里面写上
string s = "a";
SqlConnection sql=new SqlConnection(s)
这时传入的参数s说找不到
这是为什么
我问老师,老师说c#和java不同
是先要实例化一个对象,才会有他的属性.
我试着把它改成静态的
static string s = "a";
SqlConnection sql=new SqlConnection(s)
s能找到了
但我还是不明白这段如果在JAVA中这样写的话是没问题
为什么在C#中不行呢
关键是为什么s会找不到
要把他定义成static才不会出错
static string s = "a";
SqlConnection sql=new SqlConnection(s)
Test()
{}
}
就是没有写在方法内部,但JAVA中可以的啊
里面定义了一个string,而它又是非静态的,你不能用SqlConnection这个类进行访问
(SqlConnection本身是个类),除非你把它写到方法内部!
Visual C# 参考:错误和警告
编译器错误 CS0236错误消息
字段初始值设定项不能引用非静态字段、方法或属性“field”实例字段不能用于初始化方法之外的其他实例字段。如果您正尝试在方法之外初始化一个变量,请考虑在类构造函数内部执行初始化。有关更多信息,请参见方法(C# 编程指南)。下面的示例生成 CS0236:
复制代码// CS0236.cs
public class MyClass
{
public int i = 5;
public int j = i; // CS0236
public int k; // initialize in constructor MyClass()
{
k = i;
} public static void Main()
{
}
}