Модификатор readonly
readonly поле класса задают в объявлении
или в конструкторе того же класса. После
этого присвоение запрещено. В структуре
readonly метод не может менять поля
через this,
кроме случаев внутри конструктора struct.
Для констант на этапе компиляции используют
const.
Синтаксис
public readonly тип поле;
public readonly тип Метод() { }
Пример
Давайте инициализируем readonly поле в конструкторе:
using System;
class Token
{
public readonly string Code;
public Token(string code)
{
Code = code;
}
}
class Program
{
static void Main()
{
var item = new Token("abcde");
Console.WriteLine(item.Code);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте задать readonly поле при объявлении:
using System;
class FixedRow
{
public readonly int Size = 5;
}
class Program
{
static void Main()
{
var item = new FixedRow();
Console.WriteLine(item.Size);
}
}
Результат выполнения кода:
5
Пример
Давайте прочитаем поле в readonly методе struct:
using System;
struct Point
{
public int X;
public int Y;
public readonly int Sum()
{
return X + Y;
}
}
class Program
{
static void Main()
{
var pt = new Point { X = 2, Y = 3 };
Console.WriteLine(pt.Sum());
}
}
Результат выполнения кода:
5