Задать значение переменной можно, в частности, с помощью оператора присваи вания, как было не раз продемонстрировано ранее. Кроме того, задать начальное зна чение переменной можно при ее объявлении. Для этого после имени переменной ука зывается знак равенства (=) и присваиваемое значение. Ниже приведена общая форма инициализации переменной: тип имя_переменной = значение;
где значение — это конкретное значение, задаваемое при создании переменной. Оно должно соответствовать указанному типу переменной. Ниже приведены некоторые примеры инициализации переменных. int count = 10; // задать начальное значение 10 переменной count. char ch = 'X'; // инициализировать переменную ch буквенным значением X. float f = 1.2F // переменная f инициализируется числовым значением 1,2.
Если две или более переменные одного и того же типа объявляются списком, разде ляемым запятыми, то этим переменным можно задать, например, начальное значение. int а, b =8, с = 19, d; // инициализировать переменные b и с
В данном примере инициализируются только переменные b и с. Динамическая инициализация
В приведенных выше примерах в качестве инициализаторов переменных исполь зовались только константы, но в C# допускается также динамическая инициализация переменных с помощью любого выражения, действительного на момент объявления переменной. Ниже приведен пример краткой программы для вычисления гипотенузы прямоугольного треугольника по длине его противоположных сторон. // Продемонстрировать динамическую инициализацию. using System; class DynInit { static void Main { // Длина сторон прямоугольного треугольника, double s1 = 4.0; double s2 = 5.0; // Инициализировать переменную hypot динамически, double hypot = Math.Sqrt( (s1 * s1) + (s2 * s2) ); Console.Write("Гипотенуза треугольника со сторонами " + s1 + " и " + s2 + " равна "); Console.WriteLine("{0:#.###}.", hypot); } }
Результат выполнения этой программы выглядит следующим образом. Гипотенуза треугольника со сторонами 4 и 5 равна 6.403
В данном примере объявляются три локальные переменные: s1, s2 и hypot. Две из них (s1 и s2) инициализируются константами, А третья (hypot) динамически ини циализируется вычисляемой длиной гипотенузы. Для такой инициализации исполь зуется выражение, указываемое в вызываемом методе Math.Sqrt. Как пояснялось выше, для динамической инициализации пригодно любое выражение, действительное на момент объявления переменной. А поскольку вызов метода Math.Sqrt (или лю бого другого библиотечного метода) является действительным на данный момент, то его можно использовать для инициализации переменной hypot. Следует особо под черкнуть, что в выражении для инициализации можно использовать любой элемент, действительный на момент самой инициализации переменной, в том числе вызовы методов, другие переменные или литералы. Неявно типизированные переменные
Как пояснялось выше, все переменные в C# должны быть объявлены. Как прави ло, при объявлении переменной сначала указывается тип, например int или bool, а затем имя переменной. Но начиная с версии C# 3.0, компилятору предоставляется возможность самому определить тип локальной переменной, исходя из значения, ко торым она инициализируется. Такая переменная называется неявно типизированной. Неявно типизированная переменная объявляется с помощью ключевого слова var и должна быть непременно инициализирована. Для определения типа этой перемен ной компилятору служит тип ее инициализатора, т.е. значения, которым она инициа лизируется. Рассмотрим такой пример. var е = 2.7183;
В данном примере переменная е инициализируется литералом с плавающей точкой, который по умолчанию имеет тип double, и поэтому она относится к типу double. Если бы переменная е была объявлена следующим образом: var е = 2.7183F;
то она была бы отнесена к типу float.