В C# двете основни категории типове са стойностни типове (като структури) и референтни типове (като класове). Тъй като структура (или структура) е тип стойност, тя е ориентирана към данните.
Структурата може да съхранява атрибути и свързани методи, които за предпочитане не се фокусират върху поведението.
Как да декларирам структура
Всяка декларация на структура трябва да има структура ключова дума. Предшествайте ключовата дума struct с модификатор за достъп и включете име и чифт фигурни скоби след него. Ето как да декларирате структура, наречена Game:
публичен struct Game {}
Как да попълните структура
Структурата съхранява данни в своите фигурни скоби под формата на атрибути, конструктори, методи, събития и т.н.
публичен struct Game
{
публичен име на низ;
публичен описание на низ;
публиченвътр нива;публиченИгра(име на низ, описание на низ, вътр нива){
това.name = име;
това.description = описание;
това.levels = нива;
}
публичен заменим низ ToString() => $"Име: {name}, Описание: {description}, Нива: {levels}";
}
Структурата Game вече има три атрибута, конструктор и метод. Това са три основни компонента на C# структура, които също са три от основните компоненти на a C# клас.
Как да създадете структурна променлива
Всеки екземпляр на C# структура е известен като a променлива. Има два начина за създаване на променлива от структура. Можете да използвате конструктор:
Игра game1 = нова игра("покéпн ГО", "Lorem ipsum dolor sit amet.", 50);
Или можете да присвоите стойности на отделни атрибути на структура, като използвате оператора точка (.):
Игра игра1;
game1.name = "покéпн ГО";
game1.description = "Lorem ipsum dolor sit amet.";
game1.levels = 50;
И двата подхода постигат един и същ резултат. Кодът по-горе използва C# за разработване на игрален обект, наречен Pokémon GO, който има кратко описание и 50 нива. И така, сега можете да използвате обекта game1.
Конзола.WriteLine(игра1.ToString());
Това отпечатва следния изход към конзолата:
Име: покémon GO, Описание: Lorem ipsum dolor sit amet., Нива: 50
Разликите между структура и клас
Структура и клас имат подобен външен вид, но имат много забележими разлики. Те използват различни ключови думи за деклариране. А структурите не поддържат нито нулеви препратки, нито наследяване.