miércoles, 31 de diciembre de 2008

Una dudilla sobre C#

Hola… a punto todos para comernos las uvas????

Antes de que lo hagáis y os lanceis luego a brindar con cava por el nuevo año, y una cosa lleve a la otra y no esteis en condiciones, digamos de… pensar mucho, a ver si alguien me sabe responder una dudilla que me ha surgido hoy.

¿Porque este código no compila?

public class Foo
{
public string Name { get { return string.Empty; } }
public string Name() { return string.Empty ; }
}

Por si alguien (como yo) se pensaba que eso compilaba, pues no. Visual Studio se queja con un claro y explícito error CS0102: The type 'ConsoleApplication232.Foo' already contains a definition for 'Name'.


Alguien sabe el porque de esta limitación? Es decir, porque han evitado que podamos hacer esto? Alguien tiene alguna idea?


Epa!!! Buen año a tod@s y que el 2009 os sea lo más propicio posible!!!! Y no os comáis las uvas antes de tiempo! Recordad que el último minuto de este 2008 tiene un segundillo de más!!! xD


Para variar esto es un crosspost desde mi blog en geeks.ms

2 comentarios:

Mat Vegan dijo...

antes que nada, muy bueno tu blog.

creo que no tiene sentido tener la posibilidad de tener un metodo y una propiedad de un objeto con el mismo nombre, seria confuso.
es como cuando una misma palabra sirve de sustantivo, adjetivo y verbo
xD

yo tambien lo prohibiria.

JRAbad dijo...

Creo que Mat Vegan tiene la razon, lo apoyo es confuso tener un campo con el mismo nombre que el comportamiento.