Мне было интересно, какие общие преимущества (или недостатки) использования нестатического класса со статическим методом в сравнении с статическим классом с тот же статический метод, , кроме, тот факт, что я не могу использовать статические методы из нестатического класса в качестве методов расширения.Низкоуровневая разница: нестатический класс со статическим методом против статического класса со статическим методом
Например:
class NonStaticClass
{
public static string GetData()
{
return "This was invoked from a non-static class.";
}
}
в сравнении с этим:
static class StaticClass
{
public static string GetData()
{
return "This was invoked from a static class.";
}
}
Каковы последствия/производительность памяти использования одного метода над другим?
ПРИМЕЧАНИЕ: Предположим, что мне не нужно создавать экземпляр класса. Мое использование сценарий ограничивается чем-то вроде этого:
Console.WriteLine(NonStaticClass.GetData());
Console.WriteLine(StaticClass.GetData());
Отметьте отредактированное сообщение для сценария использования - я вообще задавался вопросом, есть ли разница, используя его без создания экземпляра. –
Обновлено сообщение. –
В дополнение к указанным вами точкам: вы также не можете использовать статический класс в качестве типа локальной переменной, поля или формального параметра. Вы не можете использовать его как тип элемента массива. Вы не можете использовать его как аргумент типа в списке аргументов общего типа. –