امکان دادن چندین خروجی از یک تابع
سلام.
دوستان امکانش هست از یک تابع چندین خروجی داشته باشیم :متفکر:
به این صورت :
public string int float Check(string n)
{
return "test",12,8.54;
}
یعنی میخوام بدونم امکان چنین کاری وجود داره؟:متفکر:
اگه آره به چه صورتی!!
نقل قول: امکان دادن چندین خروجی از یک تابع
نقل قول:
نوشته شده توسط
رامین مرادی
سلام.
دوستان امکانش هست از یک تابع چندین خروجی داشته باشیم :متفکر:
به این صورت :
public string int float Check(string n)
{
return "test",12,8.54;
}
یعنی میخوام بدونم امکان چنین کاری وجود داره؟:متفکر:
اگه آره به چه صورتی!!
سلام بله ولی نا با سینتکس شما کلمه tuple رو سرچ کن کابردش همینه
نقل قول: امکان دادن چندین خروجی از یک تابع
نقل قول:
نوشته شده توسط
رامین مرادی
سلام.
دوستان امکانش هست از یک تابع چندین خروجی داشته باشیم :متفکر:
به این صورت :
public string int float Check(string n)
{
return "test",12,8.54;
}
یعنی میخوام بدونم امکان چنین کاری وجود داره؟:متفکر:
اگه آره به چه صورتی!!
این امکان تو #C نسخه 7 اضافه شده و میتونید به صورت زیر ازش استفاده کنید:
(string, string, string) LookupName(long id) // tuple return type{
... // retrieve first, middle and last from data storage
return (first, middle, last); // tuple literal
}
منبع : Blog.Msdn
اگر که به هردلیلی نمیتونید از VS 2017 استفاده کنید
بهترین راه اینه که یا از کلاس Tuple استفاده کنید که خوانایی بالایی نداره ولی کار مورد نظر شما رو انجام میده :
static void M(Tuple<string, string[], int, int[]> tuple) {
// Evaluate the tuple's items.
Console.WriteLine(tuple.Item1);
foreach (string value in tuple.Item2)
{
Console.WriteLine(value);
}
Console.WriteLine(tuple.Item3);
foreach (int value in tuple.Item4)
{
Console.WriteLine(value);
}
}
منبع : dotnetperls
و یا این که یک Class یا یک Struct بسازید و اون رو به خروجی بفرستید
نقل قول: امکان دادن چندین خروجی از یک تابع
نقل قول:
نوشته شده توسط
Mani_rf
این امکان تو #C نسخه 7 اضافه شده و میتونید به صورت زیر ازش استفاده کنید:
(string, string, string) LookupName(long id) // tuple return type{
... // retrieve first, middle and last from data storage
return (first, middle, last); // tuple literal
}
منبع :
Blog.Msdn
اگر که به هردلیلی نمیتونید از VS 2017 استفاده کنید
بهترین راه اینه که یا از کلاس Tuple استفاده کنید که خوانایی بالایی نداره ولی کار مورد نظر شما رو انجام میده :
static void M(Tuple<string, string[], int, int[]> tuple) {
// Evaluate the tuple's items.
Console.WriteLine(tuple.Item1);
foreach (string value in tuple.Item2)
{
Console.WriteLine(value);
}
Console.WriteLine(tuple.Item3);
foreach (int value in tuple.Item4)
{
Console.WriteLine(value);
}
}
منبع :
dotnetperls
و یا این که یک Class یا یک Struct بسازید و اون رو به خروجی بفرستید
من از 2013 استفاده میکنم . پس مجبورم از تاپل استفاده کنم. فقط یه سوال دیگه. اگه خروجی ما بصورت دیتاتبل باشه مثلا چهارتا دیتا تیبل مشکلی نیست؟
نقل قول: امکان دادن چندین خروجی از یک تابع
نقل قول:
نوشته شده توسط
رامین مرادی
من از 2013 استفاده میکنم . پس مجبورم از تاپل استفاده کنم. فقط یه سوال دیگه. اگه خروجی ما بصورت دیتاتبل باشه مثلا چهارتا دیتا تیبل مشکلی نیست؟
در اینصورت نوع متد را از نوع dataset انتخاب کنید، در بدنه متد دیتاتیبل ها رو به یک دیتاست اضافه کنید و return کنید.
نقل قول: امکان دادن چندین خروجی از یک تابع
یه کلاس بنویس و داخل کلاس میتونی هر نوع فیلدی رو تعریف کنی
در تابعت از اون کلاس نمونه بساز و مقدارهای لازم رو بده و بفرست به خروجی
نقل قول: امکان دادن چندین خروجی از یک تابع
کلاس Tuple که دوستمون گفت میتونه به تعداد محدودی آبجکت برگردونه:
using System;
class Program
{
static void Main()
{
// Create three-item tuple.
Tuple<int, string, bool> tuple =
new Tuple<int, string, bool>(1, "cat", true);
// Access tuple properties.
if (tuple.Item1 == 1)
{
Console.WriteLine(tuple.Item1);
}
if (tuple.Item2 == "dog")
{
Console.WriteLine(tuple.Item2);
}
if (tuple.Item3)
{
Console.WriteLine(tuple.Item3);
}
}
}
نقل قول: امکان دادن چندین خروجی از یک تابع
سلام
منطقی ترین روش در پست 6 گفته شده است