Модификатор static
static член принадлежит самому типу.
К нему обращаются через имя класса, без
new. Статический метод не может
обращаться к нестатическим полям и методам
без экземпляра. В интерфейсах также
объявляют статические члены.
Синтаксис
public static тип поле;
public static тип Метод() { }
Пример
Давайте вызовем статический метод:
using System;
class IdGen
{
public static string NextCode()
{
return "abcde";
}
}
class Program
{
static void Main()
{
Console.WriteLine(IdGen.NextCode());
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте изменим общее статическое поле:
using System;
class Counter
{
public static int Total;
public static void Add()
{
Total++;
}
}
class Program
{
static void Main()
{
Counter.Add();
Counter.Add();
Console.WriteLine(Counter.Total);
}
}
Результат выполнения кода:
2
Пример
Давайте сочетаем статический и экземплярный метод:
using System;
class Cell
{
public string Value = "12345";
public static string GetEmpty()
{
return "";
}
public string Read()
{
return Value;
}
}
class Program
{
static void Main()
{
var item = new Cell();
Console.WriteLine(Cell.GetEmpty().Length + " " + item.Read());
}
}
Результат выполнения кода:
0 12345
Смотрите также
-
статика в интерфейсе,
которая задаёт static-члены контракта -
const,
который задаёт неизменяемую константу -
readonly,
который запрещает перезапись после инициализации -
ReferenceEquals,
который сравнивает ссылки как static-метод