Главная arrow Язык программирования C# arrow C# Полное руководство Герберт Шилдт arrow Динамическая инициализация C# Полное руководство Герберт Шилдт

Динамическая инициализация C# Полное руководство Герберт Шилдт

В приведенных выше примерах в качестве инициализаторов переменных использовались только константы, но в C# допускается также динамическая инициализация переменных с помощью любого выражения, действительного на момент объявления переменной. Ниже приведен пример краткой программы для вычисления гипотенузы прямоугольного треугольника по длине его противоположных сторон.
// Продемонстрировать динамическую инициализацию, using System; class Dynlnit {
static void Main() {
// Длина сторон прямоугольного треугольника, double si = 4.0; double s2 = 5.0;
// Инициализировать переменную hypot динамически, double hypot = Math. Sqrt ( (si * si) + (s2 * s2) );
Console.Write(
"Гипотенуза треугольника со сторонами " + si + " и " + s2 + " равна ") ;
Console.WriteLine("{0 :#.###}.", hypot);
}
}
Результат выполнения этой программы выглядит следующим образом:
Гипотенуза треугольника со сторонами 4 и 5 равна 6.403
В данном примере объявляются три локальные переменные: si, s2 и hypot. Две из них (si и s2) инициализируются константами, А третья (hypot) динамически инициализируется вычисляемой длиной гипотенузы. Для такой инициализации используется выражение, указываемое в вызываемом методе Math. Sqrt (). Как пояснялось выше, для динамической инициализации пригодно любое выражение, действительное на момент объявления переменной. А поскольку вызов метода Math. Sqrt () (или любого другого библиотечного метода) является действительным на данный момент, то его можно использовать для инициализации переменной hypot. Следует особо подчеркнуть, что в выражении для инициализации можно использовать любой элемент, действительный на момент самой инициализации переменной, в том числе вызовы методов, другие переменные или литералы.