This question already has answers here:
Use of var keyword in C#
                                
                                    (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