Jon*_*ker 3 .net c# language-design
c#/ .net中是否需要多个返回参数?
public string, string GetFirstNameAndLastName(int id)
{
var person = from p in People
where p.Id = id
select p;
return(p.FirstName, p.LastName);
}
Run Code Online (Sandbox Code Playgroud)
用法:
public void Main(string[] args)
{
string firstName, lastName;
(firstName, lastName) = GetFirstNameAndLastName(1);
Console.WriteLine(firstName + ", " + lastName);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用C#4.0中的Tuple以轻量级方式实现此目的
public Tuple<string, string> GetFirstNameAndLastName(int id)
{
var person = from p in People
where p.Id = id
select p;
return new Tuple<string, string>(p.FirstName, p.LastName);
// OR
// return Tuple.Create(p.FirstName, p.LastName);
}
Run Code Online (Sandbox Code Playgroud)
System.Tuple
还有与F#本机元组类型互操作的好处(好吧,它是F#的本机元组类型,恰好是F#特定的语法支持,用于声明返回它们的元组和函数).
鉴于多种方法在这里的存在:System.Tuple
,多out
参数或者返回POCO与FirstName
和LastName
性质,我怀疑安德斯·海尔斯伯格很可能不会增加对多个返回值的明确支持.
不,只需使用out
参数.
public void GetFirstNameAndLastName(int id, out string first, out string last)
{
var person = from p in People
where p.Id = id
select p;
first = p.FirstName;
last = p.LastName;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4093 次 |
最近记录: |