Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
443 views
in Technique[技术] by (71.8m points)

c# - Method should return multiple values

Hii

I have method in C#, I have to return multiple values from that method with out using collections like arrays. Is there any reliable way ?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Yes, the out keyword:

public void ReturnManyInts(out int int1, out int int2, out int int3)
{
    int1 = 10;
    int2 = 20;
    int3 = 30;
}

then call it like this:

int i1, i2, i3;
ReturnManyInts(out i1, out i2, out i3);

Console.WriteLine(i1);
Console.WriteLine(i2);
Console.WriteLine(i3);

which outputs:

10
20
30

EDIT:

I'm seeing that a lot of posts are suggesting to create your own class for this. This is not necessary as .net provides you with a class to do what they are saying already. The Tuple class.

public Tuple<int, string, char> ReturnMany()
{
    return new Tuple<int, string, char>(1, "some string", 'B');
}

then you can retrieve it like so:

var myTuple = ReturnMany();
myTuple.Item1 ...
myTuple.Item2 ...

there are generic overloads so you can have up to 8 unique types in your tuple.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...