Anhelo esos dulces argumentos opcionales de los días en que programé más en C++. Sé que no existen en C#, pero mi pregunta es Por qué.¿Cuál es el razonamiento para que C# no admita argumentos opcionales/predeterminados?
Creo que la sobrecarga de métodos es un mal sustituto que hace que las cosas se compliquen muy rápido.
void foo(int x,int y,int z=0){
//do stuff...
}
//is so much more clean than
void foo(int x,int y){
foo(x,y,0);
}
void foo(int x,int y,int z){
//do stuff
}
Simplemente no entiendo cuál es el razonamiento. El compilador de C# obviamente no tendría problemas para respaldar esto, solo Microsoft eligió no admitirlo.
¿Por qué, cuando se diseñó C#, no querían admitir argumentos opcionales?
¡Sam Ng ha escrito sobre esto, Filosofía! sección: http://blogs.msdn.com/samng/archive/2009/04/17/named-and-optional-arguments-ties-and-philosophies.aspx –