在C#中实例化类时,我有点困惑。 这是我通常做的事情
在模特:
public class ModelView
{
public string inputfield1 { get; set; }
public string inputfield2 { get; set; }
public List<DataGrid1> Grids { get; set; }
}
public class DataGrid1
{
public string row1 { get; set; }
public string row2 { get; set; }
public string row3 { get; set; }
}
在控制器中:
public ActionResult Index()
{
ModelView result = new ModelView //this is where I confused
{
inputfield1 = " ",
inputfield2 = " ",
Grids = new List<DataGrid1>()
};
return View(result);
}
在很多例子中,我看到人们这样做:
public ActionResult Index()
{
ModelView result = new ModelView()
{
inputfield1 = " ",
inputfield2 = " ",
Grids = new List<DataGrid1>()
};
return View(result);
}
我确实尝试了这个,它也有效。我的问题是
使用()之间的区别是什么,而不是在实例化类时?
答案 0 :(得分:3)
使用内联属性定义对象时,()
括号是可选的。这就是为什么这样做的原因
ModelView result = new ModelView()
{
inputfield1 = " "
};
这也是
ModelView result = new ModelView
{
inputfield1 = " "
};
但是当内联未定义属性时,括号是强制性的。
ModelView result = new ModelView();
result.inputfield1 = " ";
这不会起作用
ModelView result = new ModelView;