En C# cuando quiero llamar a un método estático de una clase desde otro método estático de esa clase, ¿existe un prefijo genérico que puedo usar como PHP self::
en lugar del nombre de clase?¿Cuál es el equivalente de C# al "self ::" de PHP?
Así, en el ejemplo de abajo, en lugar de decir Customer.DatabaseConnectionExists()
, ¿cómo puedo decir algo como Self.DatabaseConnectionExists()
así por ejemplo, más tarde, si cambio el nombre de la clase, ¿no tengo que cambiar todos los prefijos?
class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public static Customer GetCurrentCustomer()
{
if (Customer.DatabaseConnectionExists())
{
return new Customer { FirstName = "Jim", LastName = "Smith" };
}
else
{
throw new Exception("Database connection does not exist.");
}
}
public static bool DatabaseConnectionExists()
{
return true;
}
}
No estoy al tanto de nada, pero ¿por qué no debería ir a "Refactorizar" a través del menú contextual? Igualmente le salvará de los problemas manuales de edición – annakata
pero al menos de mi experiencia leyendo código PHP, Si ve "self ::", sabe que está haciendo referencia a esa clase, no importa cómo se llame, si ve "Customer ::", debe mirar alrededor para ver si realmente está en la clase Customer o no. Simplemente hace que el código sea un poco más explícito, algo que estaba acostumbrado a ver. –