2009-07-30 45 views
16

En otras lenguas puedo configurar la firma del método comoparámetros por defecto C#

cookEgg(boolean hardBoiled = true) 

el valor predeterminado del parámetro hardboiled de verdad, si no recibo un parámetro en la llamada al método. ¿Cómo puedo lograr esto en C#?

Muchas gracias

Respuesta

30

En la actualidad, hay que sobrecargar el método:

void cookEgg(bool hardBoiled) { ... } 
void cookEgg() { cookEgg(true); } 

C# 4.0 agregará argumentos opcionales - usted será capaz de escribir código exactamente como en la muestra original, y funcionará como es de esperar

+1

Espero esta característica tbh. Es bastante molesto tener que hacer un método sobrecargado para tener esta característica en este momento. También estoy esperando métodos de extensión estáticos (extendiendo una clase estática, como ... System.String o algo así). – Zack

+0

Me falta algo, ya que puede definir fácilmente los métodos de extensión para 'System.String' en C# 3.0. –

2

Esto no es lo que parece exactamente, pero creo que params argumento es otra respuesta.

void test(params int []arg) { } 
Cuestiones relacionadas