2009-03-12 15 views
9

Duplikat PytanieMetoda Nullable Argumenty w C#

Passing null arguments to C# methods

Mogę to zrobić w C# .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... 
} 

Jeśli nie, czy jest coś podobnego, co mogę zrobić?

+0

Zrobiłem wyszukiwanie, a duplikat nie pojawił się ani nie odpowiedziałby na to pytanie. Dziękuje wszystkim. –

Odpowiedz

17

Tak, zakładając, że dodaje ikony będą celowo i naprawdę oznaczało:

public void myMethod(string astring, int? anint) 

anint będzie teraz mają właściwość HasValue.

7

W języku C# 2.0 można zrobić;

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

I wywołać metodę jak

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

Zależy od tego, co chcesz osiągnąć. Jeśli chcesz, aby móc upuścić parametr anint, trzeba utworzyć przeciążeniem:

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

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

można teraz zrobić:

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

Jeśli chcesz przekazać int zerowalne, dobrze, patrz inne odpowiedzi. ;)

+0

+1 dobra sugestia użycia polimorfizmu –

+3

To nie jest polimorfizm –

+1

@ Grar, tak, tak nie jest. –