日期:2014-05-18  浏览次数:20934 次

一个关于new的语法问题
C# code

class a {
   public string strA;
   public string strB;

   public a(string sa, string sb){  this.strA = sa; this.strB = sb;  }
}

//第一种
a test = new a { strA = "abc", strB = "def" };

//第二种
a test = new a();
test.strA = "abc";
test.strB = "def";




我记得以前我用第一种写过,编译没有问题。
这段时间写一个项目,new一个类用的第一种方法,VS不报错,但编译却不行,报错说new后面需要(),[]之类的错误提示,所以没办法就改成了第二种。

是编译环境设置的关系还是framework版本关系?要求是什么?谢谢。

------解决方案--------------------
这个看你在那个版本下vs里玩了

第一种叫对象初始化器在net3.0以上的版本在出现,也就是你在vs2008以下版本的vs里面有用不成,属于语法糖级别的东西

本质相同,只是编译器玩的语法糖以简化代码编写手段