Ha nullverdier Metode Argumenter i C #

stemmer
9

Duplicate Spørsmål

Passerer null argumenter til C # metoder

Kan jeg gjøre dette i C # for .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...
}

Hvis ikke, er det noe lignende jeg kan gjøre?

Publisert på 12/03/2009 klokken 12:16
kilden bruker
På andre språk...                            


3 svar

stemmer
17

Ja, forutsatt at du har lagt de doble vinklene bevisst, og du egentlig mente:

public void myMethod(string astring, int? anint)

anintvil nå ha en HasValueeiendom.

Svarte 12/03/2009 kl. 12:18
kilden bruker

stemmer
8

I C # 2.0 du kan gjøre;

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

Og kaller metoden som

 myMethod("Hello", 3);
 myMethod("Hello", null);
Svarte 12/03/2009 kl. 12:19
kilden bruker

stemmer
14

Avhenger av hva du ønsker å oppnå. Hvis du ønsker å være i stand til å slippe anintparameter, må du opprette en overbelastning:

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

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

Nå kan du gjøre:

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

Hvis du ønsker å passere en nullable int, vel, se de andre svarene. ;)

Svarte 12/03/2009 kl. 12:19
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more