Константи в C# - въпросче ?
В C#, ако вътре в един клас дефинираме константа,
то това const влючва ли автоматично по премълчаване и static ?
Пример
class Calendar1
{
public const int Months = 12;
}
Значи ли, че в този пример имаме
public static const int Months = 12;
Като това което е между редовете е такъв подвъпрос (което всъщност е истинския въпрос):
Ако имаме константа в един клас и 5 милиона променливи/обекта от този клас, то колко памет ще се задели за константата ?
пет милиона константи, или само една константа ?
Отговор: Константи в C# - въпросче ?
Малко да уточним понятията. Константите не заделят памет ,тя е просто псевдоним който се замества при компилиране/интерпретиране(константите се използват просто за прегледност).Всяка променлива запазва памет.. По подразбиране всеки обект е статичен, а не динамичен.
Отговор: Константи в C# - въпросче ?
Ако сега беше 1986-1988 г, щях да се съглася с теб на 101%
(тогава нямаше C#, но константи си имаше)
Но сега през 2022 не знам колко са тия проценти. (Като процентите се промениха още през 1988-1992 с излизането на C++ и класовете в него).
Щото (сега) например при търсене в Гугъл на
"Pointer to const object"
попадаш на резултати и дискусии, при които сценария с "псевдонимите и заместването им при компилирането" звучи ... ъъъ ... не звучи достоверно
ПП.
Между другото, въпроса от първия пост вече има отговор и не е актуален като въпрос - може да се счита, че все едно const влече със себе си и static (, когато става въпрос за такъв const дефиниран вътре в клас)