Стойност по подразбиране
bool
|
false
|
byte
|
0
|
char
|
'\0'
|
decimal
|
0.0M
|
double
|
0.0D
|
float
|
0.0F
|
int
|
0
|
референция към обект
|
null
|
За по-изчерпателна информация може да погледнете темата "Примитивни типове и променливи", секция "Типове данни", подсекция "Видове", където има пълен списък с всички примитивни типове данни в C# и подразбиращите се стойности за всеки един от тях.
Например, ако създадем клас Dog и за него дефинираме полета име (name), възраст (age), дължина (length) и дали кучето е от мъжки пол (isMale), без да ги инициализираме по време на декларацията им, те ще бъдат автоматично занулени при създаването на обект от този клас:
public class Dog
{
string name;
int age;
int length;
bool isMale;
static void Main()
{
Dog dog = new Dog();
Console.WriteLine("Dog's name is: " + dog.name);
Console.WriteLine("Dog's age is: " + dog.age);
Console.WriteLine("Dog's length is: " + dog.length);
Console.WriteLine("Dog is male: " + dog.isMale);
}
}
|
Съответно при стартиране на примера като резултат ще получим:
Dog's name is:
Dog's age is: 0
Dog's length is: 0
Dog is male: False
|
Автоматична инициализация на локални променливи и полета
Ако дефинираме дадена локална променлива в един метод, без да я инициализираме, и веднага след това се опитаме да я използваме (примерно като отпечатаме стойността й), това ще предизвика грешка при компилация, тъй като локалните променливи не се инициализират с подразбиращи се стойности по време на тяхното деклариране.
|
За разлика от полетата, локалните променливи, не биват инициализирани с подразбираща се стойност при тяхното деклариране.
|
Нека разгледаме един пример:
static void Main()
{
int notInitializedLocalVariable;
Console.WriteLine(notInitializedLocalVariable);
}
|
Ако се опитаме да компилираме горния код, ще получим следното съобщение за грешка:
Use of unassigned local variable 'notInitializedLocalVariable'
|
Сподели с приятели: |