【发布时间】:2019-07-28 15:58:43
【问题描述】:
我正在学习 C#,并且对它完全陌生,所以如果这看起来是一个非常简单的问题,我很抱歉。
我刚刚看了一个教程,解释了如何使用out 参数从一个方法返回多个值。但是,我真的不明白它在实践中是如何工作的。他们给出的例子是:
using System;
namespace UsingOut
{
class Program
{
static void Main(string[] args)
{
string statement = "GARRRR";
string murmur = Whisper(statement, out bool marker);
Console.WriteLine(murmur);
}
static string Whisper(string phrase, out bool wasWhisperCalled)
{
wasWhisperCalled = true;
return phrase.ToLower();
}
}
}
但是,我看不出这是如何返回多个值的?看起来它只是返回字符串?
请有人给我一个非常简单的解释,说明何时使用out 以及它的实际作用?
非常感谢
【问题讨论】:
-
wasWhisperCalled = true;你的布尔参数也被设置/更改/修改并返回 -
谢谢@ŇɏssaPøngjǣrdenlarp :) 我没看到它在哪里返回??
-
设置
wasWhisperCalled = true也会在调用方法中设置marker = true。您也可以使用ValueTuple作为返回值:static (string, bool) Whisper(string phrase) { return (phrase.ToLower(), true); }并使用(string murmur, bool marker) = Whisper(statement);调用它 -
Stack Overflow 不是一个教程网站。有关返回值和引用参数(例如使用
out的参数)之间差异的信息,请参阅标记的重复项。也就是说,请注意“返回”的值仅表示方法的调用者具有该值。out参数不是通过与使用return语句返回的值相同的机制“返回”的,然后是方法返回后方法调用表达式本身的值;相反,它直接存储到最初通过out传递的变量中。但两者都返回值。