Инициализация переменной


Переменные и их инициализация

О переменных мы уже коротко говорили в главе 1. Вам известно, что переменные объявляются с помощью оператора, имеющего следующий синтаксис:

type var-name;
где type - это тип переменной, а var-name - ее имя. Вы можете объявлять переменные любого действительного типа, включая рассмотренные выше простые типы. При создании переменной создается экземпляр ее типа, следовательно, возможности переменной определяются ее типом. Например, переменная типа bool не может использоваться для хранения значений с плавающей точкой. Более того, при объявлении переменной ее тип фиксируется и изменять его нельзя. Например, переменная типа int не может превратиться в переменную типа char.

Все переменные в C# должны быть объявлены до их использования. Это необходимо, поскольку компилятору нужно знать тип данных, которые содержит переменная, до того как он начнет компилировать операторы, использующие эту переменную.

В C# определено несколько различных типов переменных. Переменные, которые использовались в наших программах до этого момента, называются локальными переменными, поскольку они объявлялись в области видимости метода.

Прежде чем использовать переменную, вы должны присвоить ей значение. Сделать это можно двумя способами. Можно присвоить значение переменной в отдельном операторе после ее объявления. А можно сделать это в одном операторе, затем объявить тип переменной и присвоить ей значение, для чего ввести после имени переменной символ знака равенства (оператор присваивания), а за ним - присваиваемое значение. Синтаксис оператора инициализации показан ниже.

type var = value;

Здесь value - это значение, которое присваивается переменной во время ее создания. Значение должно быть совместимо с указанным типом.

Приведем несколько примеров объявления переменных с одновременным присваиванием им значений:

int count = 10; // переменной count задается начальное значение 10
char ch = 'X' // переменной ch присваивается символ X
float f = 1.2F; // переменной f присваивается значение 1.2

При объявлении двух и более переменных одного типа можно разделить переменные в списке запятыми и присвоить одной или нескольким из них начальное значение. Например:

int a, b = 8, c = 19, d; // переменным b и c присвоено начальное значение

В этом случае инициализированы только переменные b и c.

Динамическая инициализация В предыдущих примерах переменным присваивались только конкретные числовые значения (то есть значения, которые не были получены в результате вычисления какого-либо выражения). Но в C# можно инициализировать переменные и динамически, используя любое действительное выражение. Например, ниже приведена короткая программа, которая вычисляет объем цилиндра по заданному радиусу основания и высоте:

// В программе демонстрируется использование
// динамической инициализации переменной.

using System;

class DynInit {
public static void Main() {
double radius = 4, height = 5;

// Динамически инициализируется переменная volume
double volume = 3.1416 * radius * radius * height;
Переменная volume инициализируется динамически во время выполнения программы.

Console.WriteLine("Объем цилиндра равен: " + volume);
}
}

В этой программе объявляются три локальные переменные -radius, height и volume. Первые две, radius и height, инициализированы конкретными значениями. Переменная volume инициализируется динамически - ей присваивается значение, соответствующее объему цилиндра. Ключевым моментом является то, что в выражении инициализации может быть использован любой элемент, который уже был до этого объявлен (то есть действительный на время инициализации данной переменной). Таким элементом может быть метод, другая переменная или литерал.