Для объявления метода или класса статическим используется модификатор 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); } }
Результат работы программы:
Новая строка Старая строка кусок из закрытого метода