Const i readonly - czym są, jakie mają zastosowania i czym się różnią?


CONST

  • wartość stałej przypisywana jest już w trakcie kompilacji. W kodzie binarnym zamiast zmiennej pojawiają się konkretne wartości zamiast stałej
  • wartość można przypisać jedynie w trakcie deklaracji
  • const nie możemy oznaczyć słowem kluczowym static, ponieważ stałaconst sama z siebie jest niejako statyczna
  • słowo kluczowe const można być użyte we wnętrzu funkcji

READONLY

  • wartość stałej ustawić można zarówno podczas deklaracji jak i podczas działania programu w momencie tworzenia nowego obiektu używając konstruktora
  • stałą readonly można używać z modyfikatorem static

Przykłady C# - const & readonly

const string constantText;

Powyższy kod skutkować będzie błędem kompilatora, ponieważ wartość stałej musi być określona już podczas deklaracji.

A const field requires a value to be provided

By pozbyć się błędu, powyższy kod trzeba zmienić na:

const string constantText = "C# is cool!";

Wykorzystanie const w ciele funkcji:

class Program
{
    static void Main()
    {
        const double PI = 3.14;
        Console.WriteLine($"PI = {PI}");
    }
}
czerwo 03-10-2018 10:38
Dodałbym jeszcze "Stałe wspierają tylko typy wartościowe. Wartości tylko do odczytu mogą przetrzymywać referencję do obiektów"


© 2021 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci