статический класс
Автор Vladimir Pankratov задал вопрос в разделе Другие языки и технологии
Для чего нужны статические классы? (C#) и получил лучший ответ
Ответ от Николай Веселуха[гуру]
Ярким примером статического класса служит класс Console который имеет туеву хучу свойств и методов, которые можно использовать в консольных приложениях где угодно (глобализм) , не задумываясь, а как к этому получить доступ. Если бы класс Console не был статическим, то все конструкторы класса для его функционирования пришлось бы делать приватными. Так как создание экземпляра такого класса не предусмотрено.
Ключевое слово static разом решает все проблемы.. .И объект создать нельзя (нет конструкторов) и всё включено.
Изучите функциональность класса Console и вы поймёте, в каких случаях можно и нужно создавать такие классы.
это такой аналог модулей: набор методов, доступных для всей подсистемы. обычно это какие-то вспомогательные алгоритмы.
начиная с C# 3, в статических классах можно размещать методы расширения:
class Person {
public string Name { get; set; }
}
static class PersonExtensions {
public static GetName(this Person person) {
return person.Name;
}
}
class Program {
public static void Main() {
var person = new Person("John Smith");
var name = person.GetName();
Console.WriteLine(name);
}
}
в таком виде реализованы, например, многие алгоритмы LINQ: Where(), Sort() и так далее.
Класс можно объявлять как static. Статический класс обладает двумя основными свойствами. Во-первых, объекты статического класса создавать нельзя. И во-вторых, статический класс должен содержать только статические члены. Статический класс создается по приведенной ниже форме объявления класса, видоизмененной с помощью ключевого слова static.
static class имя класса { // ...
Вот пример:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
// В данном классе инкапсулируются статические методы
// выполняющие простейшие операции
static class MyMath
{
// Целая часть числа
static public int round(double d)
{
return (int)d;
}
// Дробная часть числа
static public double doub(double d)
{
return d - (int)d;
}
// Квадрат числа
static public double sqr(double d)
{
return d * d;
}
// Квадратный корень числа
static public double sqrt(double d)
{
return Math.Sqrt(d);
}
}
class Program
{
static void Main(string[] args)
{
Console.Write ("Введите число: ");
double num = Convert.ToDouble (Console.ReadLine ());
Console.WriteLine("
Исходное число: " + num + "
--------------------------
");
Console.WriteLine("Целая часть: {0}",MyMath.round(d: num));
Console.WriteLine("Дробная часть числа: {0}",MyMath.doub(d: num));
Console.WriteLine("Квадрат числа: {0:#.##}",MyMath.sqr(d: num));
Console.WriteLine("Квадратный корень числа: {0:#.###}",MyMath.sqrt(d: num));
Console.WriteLine ("
--------------------------
Программа завершила свою работу");
Console.ReadLine();
}
}
}
В С# статический класс играет роль пространства имен для глобальных переменных.
Глобальных переменный в принципе в C# нет, но можно объявлять переменные как поля в статическом классе. Обращение к этим переменных конечно будет использовать имя класса, зато все "плюшки" глобальных переменных останутся (и недостатки, кстати, тоже)
Что такое статический класс? Просто класс, у которого все методы и поля статические, даже объявленные не явно.
Я не знаю, можно ли именно в C# создать объект статического класса, но подразумеваю, что нельзя.
Или вопрос был всё таки - а нах@я?
php если у меня статический класс и в нем статическая переменная. Как мне обратиться из статического метода к ней?
Если обращаешься изнутри класса к статическому полю этого класса, то:
подробнее...
Лирический анализ стихотворения Н. М. Рубцова "Звезда полей". 6 класс.
Центральный образ стихотворения несет в себе социальную окрашенность. Лирическому герою важно, что
подробнее...
Статические поля и методы в С++. Подскажите что это и примеры если можно. Гугл затерялся в своих знаниях)
Статические переменные не входят в состав объекта. Они существуют в единственном экземпляре,
подробнее...
Как вызвать класс в java?
Когда метод завершается, код продолжает выполняться там, где был вызван метод.
подробнее...
В чем различие ключевых слов public и static в java? И объясните конкретно , что такое экземпляр класса.
Просто поймите разницу между классом и объектом. Класс - это абстракция, он описывает структуру
подробнее...
Биология 8 класс. Скажите пожалуйста, как работает орган равновесия. Описать. Заранее спасибо.
Вестибуля́рный аппара́т (лат. vestibulum — преддверие) , орган, воспринимающий изменения
подробнее...
Статичная функция внутри класса. какие данные будут доступны всем образцам класса?
Полагаю, речь идет о С++?
> если мы создаем статичную ПЕРЕМЕННУЮ внутри класса
подробнее...
Дополните предложения... биология 8 класс.
1. Лобная кость относится к ПЛОСКИМ... пяточная - к ..КОРОТКИМ?. а плечевая - к ...ТРУБЧАТЫМ
подробнее...
как можно украсить класс (в школе) к новому году?
Как правило, оформлением класса или аудитории к Новому году занимаются учащиеся. Для того чтобы
подробнее...