This question already has answers here:
Use of var keyword in C#
(86个答案)
6年前关闭。
我的课如下。
在动作方法中,在实例化此类时,有以下两个选项。
方法1
方法2
两者都显示相同数量的方法/属性/数据成员等。我还听说建议使用方法1
题
我的假设使用方法1是否正确?
可读性比
我认为使用显式类型确实有意义的唯一情况是在声明接口类型时,即
或铸造
再说一次,您也可以争论这些情况,因为相同的代码在功能上是等效的
通常,我很少看到需要明确定义类型,因为实例化类型可以推断出该类型。
(86个答案)
6年前关闭。
我的课如下。
public class Dropdown
{
[Required(ErrorMessage = "Please select state")]
public string StateId { get; set; }
public List<SelectListItem> States
{
get
{
return new List<SelectListItem>()
{
new SelectListItem
{
Text = "State1",
Value = "S1",
Selected = false
},
new SelectListItem
{
Selected = false,
Value = "S2",
Text = "State2"
}
};
}
}
}
在动作方法中,在实例化此类时,有以下两个选项。
方法1
var d = new Models.Dropdown();
方法2
Models.Dropdown d = new Models.Dropdown();
两者都显示相同数量的方法/属性/数据成员等。我还听说建议使用方法1
题
我的假设使用方法1是否正确?
最佳答案
var
关键字是允许隐式类型声明的编译器功能-我选择纯粹使用var
是因为它更短。
人们可能会说您使用var
会失去可读性,但是,
MyClass myobj = new MyClass()
可读性比
var myobj = new MyClass()
我认为使用显式类型确实有意义的唯一情况是在声明接口类型时,即
IMyInterface myobj = new MyClass()
或铸造
MyBaseClass myObj = new MyClass()
再说一次,您也可以争论这些情况,因为相同的代码在功能上是等效的
var myObj = (IMyInterface)new MyClass()
var myObj = (MyBaseClass)new MyClass()
通常,我很少看到需要明确定义类型,因为实例化类型可以推断出该类型。
关于c# - 何时使用var和何时使用Strongly类型? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16881801/
10-10 00:12