Для объявления метода или класса статическим используется модификатор static. Модификатор static может быть использован только с классами, полями, методами, свойствами, операторами, событиями и конструкторами.
Грубо говоря, нельзя создавать экземпляры статического класса. Т.е., нельзя использовать ключевое слово new для создания переменной типа класса.
Для обращения к статическим объектам класса осуществляется по имени класса, но не объекта.
Допустим, у нас есть публичный статический класс StringParser:
public static class StringParser
{
public static string ParseString(string str)
{
string newstr = "Новая строка " + str;
newstr += closedMethod("");
return newstr;
}
static string closedMethod(string str)
{
string resStr = string.Empty;
resStr = str + " кусок из закрытого метода";
return resStr;
}
}
Как видно из кода, к методу closedMethod(string str) мы обращаемся из метода ParseString(string str). Причем обратиться к нему можем только внутри этого класса. Из приложения Program этого сделать не получится!
Из статического метода Main класса Program мы можем обратиться только к публичному методу ParseString(string str) класса StringParser, но не к closedMethod(string str):
class Program
{
static void Main(string[] args)
{
string oldStr = "Старая строка";
string newStr = StringParser.ParseString(oldStr);
Console.WriteLine(newStr);
}
}
Результат работы программы:
Новая строка Старая строка кусок из закрытого метода

