.
Средства C#. Урок 4. Неявно типизированные переменные (var).
Автор megabax   
30.11.2013 г.
New Page 1

Средства C#. Урок 4. Неявно типизированные переменные (var).

C# является строго типизированным языком программирования. Каждая переменная должна иметь строго определенный тип. Например, вот так:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            int a = 10;

            int b = 20;

            Console.WriteLine(a + b);

            Console.Read();

        }

    }

}

Однако существуют ситуации, когда явная типизация переменных не удобна. Например, если названия типов слишком длинные. Например, вот в таком случае:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication1

{

    class MyVeryVeryVeryLongClassBecauseIVeryVeryVeryCrazy

    {

        public int myVar;

        public MyVeryVeryVeryLongClassBecauseIVeryVeryVeryCrazy(int aVar)

        {

            myVar = aVar;

        }

    }

 

    class Program

    {

        static void Main(string[] args)

        {

            MyVeryVeryVeryLongClassBecauseIVeryVeryVeryCrazy a = new MyVeryVeryVeryLongClassBecauseIVeryVeryVeryCrazy(10);

            MyVeryVeryVeryLongClassBecauseIVeryVeryVeryCrazy b = new MyVeryVeryVeryLongClassBecauseIVeryVeryVeryCrazy(20);

            Console.WriteLine(a.myVar + b.myVar);

            Console.Read();

        }

    }

}

В этом случае можно воспользоваться неявной типизацией переменных, дабы сделать код более компактным:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication1

{

    class MyVeryVeryVeryLongClassBecauseIVeryVeryVeryCrazy

    {

        public int myVar;

        public MyVeryVeryVeryLongClassBecauseIVeryVeryVeryCrazy(int aVar)

        {

            myVar = aVar;

        }

    }

 

    class Program

    {

        static void Main(string[] args)

        {

            var a = new MyVeryVeryVeryLongClassBecauseIVeryVeryVeryCrazy(10);

            var b = new MyVeryVeryVeryLongClassBecauseIVeryVeryVeryCrazy(20);

            Console.WriteLine(a.myVar + b.myVar);

            Console.Read();

        }

    }

}