Если вы хотите «вернуть» несколько значений из метода в C#
, есть несколько способов сделать это. Один из самых простых - использовать несколько параметров out
. То есть параметры метода объявляются с ключевым словом out
, и вы вызываете метод, передавая параметры извне с тем же ключевым словом. Затем внутри метода, когда вы присваиваете ему значение, на это значение можно ссылаться извне.
public static void GetValues(out int a, out int b, out int c)
{
a = 1;
b = 2;
c = 3;
}
Назовите его так:
GetValues(out int valA, out int valB, out int valC);
И напечатайте:
Console.WriteLine("a: {0}", valA);
Console.WriteLine("b: {0}", valB);
Console.WriteLine("c: {0}", valC);
Вывод:
a: 1
b: 2
c: 3
Другая идея - определить класс, который будет содержать все значения, которые вы хотите вернуть как свойства, и внутри метода создать объект его и вернуть как нормальное возвращаемое значение.
public class GetValueClass
{
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
}
public static GetValueClass GetValues()
{
var values = new GetValueClass() { A = 11, B = 22, C = 33 };
return values;
}
Вызов и печать значений:
GetValueClass values = GetValues();
Console.WriteLine("A: {0}", values.A);
Console.WriteLine("B: {0}", values.B);
Console.WriteLine("C: {0}", values.C);
Вывод:
A: 11
B: 22
C: 33
ПРИМЕЧАНИЕ
В этой строке кода:
string format, attr1, attr2, attr3 = string.Empty;
Я думаю, что вы ожидаете, что он будет назначать string.Empty
всем 4 string
переменным. Но в отличие от некоторых других языков программирования C#
не делает этого; он присваивает только string.Empty
attr3
, а остальные будут null
.