Quando si dovrebbe usare var invece di dichiarare un tipo esplicito?

-1
        var Id = from value in Enumerable.Range(0, 100)
                              select value;

        IEnumerable<int> ids = from value in Enumerable.Range(0, 100)
                              select value;



        foreach (var v in Id)
        {
            Console.WriteLine(v.ToString());
        }

        foreach (var x in ids)
        {
            Console.WriteLine(x.ToString());
        }

Entrambi faranno lo stesso lavoro, ma qual è la differenza?

    
posta Mohammed Bilal 10.12.2013 - 12:58
fonte

1 risposta

6

Non c'è differenza tra i due, tranne che per la leggibilità. Il secondo esempio (id) è più esplicito del primo e forse più leggibile. Ma la leggibilità è una questione di gusti / opinioni con molti punti di vista diversi. Ecco alcune linee guida ...

 public void SampleCode()
        {
            //Use of var is encouraged when  declaration needlessly clutters code
            Widget widget1a = new Widget();  //No
            var widget1b = new Widget();  //Yes, I know I am getting a widget.

            //Use of var is encouraged when method name defines return type 
            //or return is type is known without further need of code inspection
            Widget widget2a = GetWidget(); //OK (Verbose)
            var widget2b = GetWidget(); //Yes, But...
            //Danger, Will Robinson!  if GetWidget returns a foo...Code review time!

            //Use of var is discouraged when method offers new clue to type 
            //without further code inspection
            Widget widget3a = Process(); //Yes, intent is clear without any further inspection.
            var widget3b = Process(); //No, What does Process do?
        }
    
risposta data 10.12.2013 - 19:44
fonte

Leggi altre domande sui tag