variable usar son qué modificador metodos metodo los estáticos estaticos estatica cuando clases clase atributos atributo c# static static-classes

c# - usar - ¿Por qué se usan clases estáticas?



qué son los atributos de clase estáticos (6)

Tengo dudas sobre la clase estática y los métodos estáticos. Desde MSDN entendí que "las clases estáticas y los miembros de la clase se usan para crear datos y funciones a los que se puede acceder sin crear una instancia de la clase".

Entonces, si no queremos asociar una clase a una instancia, la haremos estática. ¿Es esa la única ventaja? ¿Alguien puede guiarme en qué escenario en tiempo real vamos para la clase estática?

En algún momento de las clases (no estático), estoy buscando métodos estáticos. ¿Qué ventaja / ventaja de rendimiento otorgan los métodos estáticos a los métodos de instancia en la práctica?



Las clases estáticas son geniales para definir métodos estáticos. Este es el enfoque clásico de ''clase de utilidad''. Sin embargo, tenga mucho cuidado con el estado de almacenamiento (es decir, definir campos) en una clase estática. En nuestro mundo de subprocesos múltiples esto puede llevar a un comportamiento de programa impredecible a menos que sincronice el acceso a campos estáticos.


Las propiedades estáticas se utilizan principalmente para introducir el contexto del código en ejecución. Y puede encontrar la confirmación para eso en cada pieza de .NET stack.
ASP.NET - HttpContext.Current
Threading - Thread.CurrentThread
WinForms - WindowsFormsSynchronizationContext.Current
WPF - Distribuidor
etc
la clase estática para mí es solo un contenedor para métodos de utilidad.


Para las clases de utilidad son geniales. Como mencionaste, son similares al estado global. Entonces, para las clases que no tienen estado, para los beneficios de rendimiento, la clase debe ser estática.

Por otro lado, las clases estáticas son difíciles de probar (si contienen estado). El polimorfismo y otros conceptos de OO también se pierden.

Usa sabiamente


Static Classes globaliza una variable particular que hace que sea más fácil de manejar durante el código. Por lo tanto, en el nivel básico, preferimos usar clases estáticas.


Aplicar la palabra clave estática a una clase es una convención de lenguaje C #, no significa nada especial para la CLR. Simplemente se asegura de que todos los miembros sean estáticos y de que no se pueda crear accidentalmente una instancia de la clase con la nueva palabra clave.

Los méritos de los métodos estáticos se discuten en este hilo.