c# - programacion - ¿Por qué el comando extract method en Visual Studio crea métodos estáticos?
variables static c# (2)
¿Por qué Visual Studio de forma predeterminada crea un método estático privado al refactorizar el código y seleccionar extraer el método?
Si estoy refactorizando una clase no estática y el método solo es visible dentro de la clase, ¿por qué es estático?
¿Hay algún beneficio de rendimiento llamando a un método estático privado dentro de una clase no estática en comparación con un método no estático dentro de una clase no estática?
¿Es para legibilidad simplemente para mostrar que el método no se basa en ninguna variable miembro de la clase?
¿Por qué Visual Studio de forma predeterminada crea un método estático privado al refactorizar el código y seleccionar extraer el método?
Solo lo hace si su método no tiene acceso a ninguna variable / método / propiedad miembro. Esto es bueno porque básicamente funciona bajo el principio de las suposiciones mínimas: dado que no se accede a datos específicos de la instancia, también podría hacer que el método sea static
.
¿Hay algún beneficio de rendimiento llamando a un método estático privado dentro de una clase no estática en comparación con un método no estático dentro de una clase no estática?
Teóricamente, puede haber, pero lo dudo. Sin embargo, hacer que el método sea estático deja en claro que no accederá ni modificará los datos de instancia, lo que me parece una pista útil.
Crear un método estático se puede considerar una mejora del rendimiento porque no hay un puntero "este" para pasar como una variable. Uso ReSharper y siempre recomienda convertir los métodos en estáticos siempre que no se refieran a una variable de clase.