Imagínese que alguien codificación de los siguientes:compilador de C# Mejora de sugerencias
string s = "SomeString";
s.ToUpper();
Todos sabemos que en el ejemplo anterior, la llamada al método “ToUpper()” no tiene sentido porque la cadena devuelta no se maneja en absoluto . Pero, sin embargo, muchas personas cometen ese error y pasan el tiempo tratando de solucionar cuál es el problema preguntándose "¿por qué los caracteres de mi 'mayúscula' no están en mayúscula?"
Entonces, ¿no sería genial si hubiera un atributo que podría aplicarse al método "ToUpper()" que produciría un error de compilación si no se maneja el objeto devuelto? Algo parecido a lo siguiente:
[MustHandleReturnValueAttribute]
public string ToUpper()
{
…
}
Si Para que este código para compilar correctamente el usuario tendría que manejar el valor de retorno de esta manera:
string s = "SomeString";
string uppers = s.ToUpper();
Creo que esto sería dejar muy claro que debe manejar el valor de retorno; de lo contrario, hay sin punto al llamar a esa función.
En el caso del ejemplo de cadena esto puede no ser un gran problema, pero puedo pensar en otras razones más válidas de por qué esto sería útil.
¿Qué piensan?
Gracias.
Lo he hecho antes, +1 –
@Rene: punto válido, +1 – Codex