2012-08-10 24 views
5

consideremos el siguiente ejemplo método:C# - ¿Cómo saltarse parámetros con valores predeterminados?

public void MyMethod (string par1, bool par2 = "true", string par3="") 
{ 
} 

Ahora vamos a decir que yo llamo MiMetodo y ajustar el valor del par3 a "IamString".

¿Cómo podría hacer eso sin establecer el valor de par2 en verdadero o falso?

Básicamente quiero dejar el valor par2 a su valor predeterminado.

Lo pregunto porque en ActionScript de Flash es posible hacer que el uso de la palabra clave predeterminado por lo que podría llamar MiMetodo ("somestring", por defecto, "IamString") y par2 se interpretaría como verdadera, que es su valor predeterminado. Me pregunto si también es posible en C#.

+1

cheque http://stackoverflow.com/questions/4630444/how- to-skip-optional-parameters-in-c-sharp – Sandeep

+1

Argumentos con nombre: http://msdn.microsoft.com/en-us/library/dd264739.aspx – asawyer

+0

Gracias, Sandeep y asawyer, por las referencias. – IneedHelp

Respuesta

11
public void MyMethod (string par1, bool par2 = "true", string par3=""){} 
Myclass.MyMethod(par1:"par1", par3:"par3"); 

Por cierto, esto no funcionará: bool par2 = "true"

string par2 = "true"

o

bool par2 = true

Hablando de valores por defecto, también se puede usar esto para obtener el valor predeterminado para un tipo particular:

default(T)

+0

¡Gracias! Y sí, tienes razón bool par2 = "verdadero" no funcionará. Es un error que cometí al intentar diseñar un ejemplo simple. – IneedHelp

+0

De nada :-) No se olvide de marcar la respuesta que desee como la respuesta :) – SeToY

+0

Sí, simplemente no me deja porque recientemente editó su respuesta. Podré aceptarlo en 1 minuto. – IneedHelp

9

Puede especificar este nombre por el parámetro:

instance.MyMethod("Hello", par3:"bla"); 

Tener una mirada here.

Y hay otro error:

bool par2 = true 

es correcto ..

+0

Gracias por su respuesta también. – IneedHelp

+0

Sí, no hay problema :) Así es como funciona – tuxtimo

+0

Su respuesta es igualmente útil para SeToY, pero aceptaré la suya porque primero lo vi. Sin embargo, ¡gracias y aprobado! – IneedHelp

Cuestiones relacionadas