2009-03-12 13 views
9

Duplicar Preguntaanulable método en el C#

Passing null arguments to C# methods

¿Puedo hacer esto en C# para .Net 2.0?

public void myMethod(string astring, int? anint) 
{ 
//some code in which I may have an int to work with 
//or I may not... 
} 

Si no es así, ¿hay algo similar que pueda hacer?

+0

Hice una búsqueda y el duplicado no apareció o habría respondido esto. Gracias a todos. –

Respuesta

17

Sí, suponiendo que los galones añadido deliberadamente y que realmente significaba:

public void myMethod(string astring, int? anint) 

anint tendrán ahora una propiedad HasValue.

7

En C# 2.0 puede hacer;

public void myMethod(string astring, int? anint) 
{ 
    //some code in which I may have an int to work with 
    //or I may not... 
} 

y llame al método como

myMethod("Hello", 3); 
myMethod("Hello", null); 
14

Depende de lo que quiere lograr. Si usted quiere ser capaz de soltar el parámetro anint, usted tiene que crear una sobrecarga:

public void myMethod(string astring, int anint) 
{ 
} 

public void myMethod(string astring) 
{ 
    myMethod(astring, 0); // or some other default value for anint 
} 

Ahora puede hacer:

myMethod("boo"); // equivalent to myMethod("boo", 0); 
myMethod("boo", 12); 

Si desea pasar un int anulable, así, ver las otras respuestas. ;)

+0

+1 buena sugerencia para usar el polimorfismo –

+3

Eso no es polimorfismo –

+1

@Garry, sí, es cierto, no lo es. –