Me preguntaba cuáles son los beneficios generales (o inconvenientes) de usar una clase no estática con un método estático versus una clase estática con el mismo método estático, distinto de el hecho de que no puedo usar métodos estáticos de una clase no estática como métodos de extensión.Diferencia de nivel bajo: clase no estática con método estático vs. clase estática con método estático
Por ejemplo:
class NonStaticClass
{
public static string GetData()
{
return "This was invoked from a non-static class.";
}
}
Versus esto:
static class StaticClass
{
public static string GetData()
{
return "This was invoked from a static class.";
}
}
¿Cuáles son las implicaciones de rendimiento/memoria de la utilización de un método sobre otro?
NOTA: Supongamos que no necesito crear una instancia de la clase. Mi escenario de caso de uso se limita a algo como esto:
Console.WriteLine(NonStaticClass.GetData());
Console.WriteLine(StaticClass.GetData());
Revise mi publicación editada para ver una situación de caso de uso: en general, me preguntaba si existe alguna diferencia al usarla sin creación de instancias. –
Actualizó la publicación. –
Además de los puntos que menciona: tampoco puede usar una clase estática como el tipo de una variable local, campo o parámetro formal. No puede usarlo como el tipo de elemento de una matriz. No puede usarlo como un argumento de tipo en una lista de argumentos de tipo genérico. –