Millised on peamised erinevused võtmesõnadest const, readonly ja static programmeerimises?
sobes.tech AI
Vastus AI-lt
C# keeles on võtmesõnad const, readonly ja static erineva otstarbega:
-
const— deklaratsioon konstant, mille väärtus on teada kompileerimise ajal ja seda ei saa muuta. Sellised väljad on põhimõtteliselt staatilised ja tuleb neid initsialiseerida deklaratsiooni ajal.public const double Pi = 3.14159; -
readonly— väli, mille väärtust saab määrata ainult deklaratsiooni või klassi konstruktoris. Pärast initsialiseerimist seda muuta ei saa. Kasutatakse väärtuste jaoks, mis on teada ainult täitmise ajal.public readonly DateTime creationTime; public MyClass() { creationTime = DateTime.Now; } -
static— modifikaator, mis näitab, et liige kuulub klassile endale, mitte eksemplile. Staatilised väljad ja meetodid on ühised kõigi klassi objektide jaoks.public static int InstanceCount = 0;
Võimalik on kombineerida static ja readonly:
public static readonly string ConfigPath = GetConfigPath();
Siin initsialiseerub ConfigPath üks kord ja sellele pääseb ligi ilma klassi eksemplari loomata.
Kokkuvõte:
const— muutumatu konstant, teada kompileerimise ajal.readonly— muutumatu väli, initsialiseeritud objekti loomisel või statiliselt.static— klassi liige, ühine kõigi eksemplaride jaoks.