PDA

View Full Version : سوال: تابع با قابلیت برگشت چند نوع مقدار



mshakeri
پنج شنبه 02 مهر 1388, 10:27 صبح
با سلام به تمامی دوستان.
به غیر از نوع object چه نوعی را می توان در تعریف تابع استفاده کرد که در شرایط مختلف نوع های مختلفی را برگرداند؟

Beyondsoft
پنج شنبه 02 مهر 1388, 11:11 صبح
بهتر است شما چندین نوع از تابع خود را بنویسید (همه یک نام داشته باشد (oveload)) که هرکدام یک نوع را پس دهد.

mshakeri
پنج شنبه 02 مهر 1388, 11:24 صبح
اگر یک نمونه کد بذارید ممنون میشم.

اَرژنگ
پنج شنبه 02 مهر 1388, 11:39 صبح
class X
{

}

class X1 : X
{

}

class X2 : X
{

}

class Builder
{
public X MakeSpecificX(int i)
{
if (i % 2 == 0)
return new X1();
else
return new X2();
}

}





class X1
{

}

class X1_1 : X1 { }
class X1_2 : X1 { }
class X1_3 : X1 { }
/*.
.
.*/
class X1_n : X1 { }

class Builder
{

public X1 MakeSpecificX(int i, int n)
{
switch (i % n)
{
case (0): return new X1_1();
case (1): return new X1_2();
case (2): return new X1_3();
/*.
.
.*/
case (n - 1): return new X1_n();
default: return new X();
}
}

}

Vahid_moghaddam
پنج شنبه 02 مهر 1388, 12:35 عصر
می تونید از Generic Method ها استفاده کنید:



static void Swap<T>(ref T var1, ref T var2)
{
T temp;
temp = var1;
var1 = var2;
var2 = temp;
}


و به این شکل تابع متد رو صدا بزنید:



int x = 33;
int y = 44;
string a = "Hello";
string b = "World!";
Swap<int>(ref x, ref y);
Swap<string>(ref a, ref b);