class Class1
{
   public String a ="OK!";
}public class Class2
{
   public Class2()
   { 
   } 
   Class1 test = new Class1();
   String b = test.a;
   static void Main(String[] args)
   {
//System.Console.Write(b);
   }
}在java中编译OK,在c#中无法编译,不解...

解决方案 »

  1.   

    String b = test.a;这条语句有问题,在java中应该也行不通的。一般来说,不推荐在方法以外的地方执行赋值语句,即使你的这条语句Class1 test = new Class1();,也应该写成Class1 test;然后Class2的构造函数中添加test=new Class1();,这样才正规。
    String b = test.a;这条语句之所以不行,是因为test.a不是常量或者静态字段,而是一个实例变量。