C#中有个out修饰符,这个修饰符的作用,可以在函数返回的时候,额外的返回变量,而不是局限于一个return之中。
在C#7中, 可以在函数调用的时候,用out修饰的变量就可以直接调用了。
static void OutExample(out int myInt, out string myString)
{
myInt = 3154;
myString = "三年又三年";
}
static void Main(string[] args)
{
OutExample(out in myInt, out string myString);
Console.WriteLine($"{myInt}, {myString}");
}
在C#7之前的版本之中的话,需要在调用方法之前,声明变量。
// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/out-parameter-modifier
int initializeInMethod;
OutArgExample(out initializeInMethod);
Console.WriteLine(initializeInMethod); // value is now 44
void OutArgExample(out int number)
{
number = 44;
}
比较有意思的是,out作为一个修饰符,与ref,in等修饰符在一起的时候,是不计入函数重载的。现在还有元组提供多样的返回特性。用起来与Matlab类似吧。
如果一旦使用了out修饰符的话,那么就和在方法中声明类型一样,需要使用return反回一个同类型的变量。out则是赋予声明变量值,即可。当然喽,有时候,调用方法的时候,不需要返回out的变量,这个时候呢,就需要使用占位符了。简单的一个下划线,便可以忽略掉out修饰的变量。不过,方法内部还是要赋予out修饰变量一个具体的值的。

324

被折叠的 条评论
为什么被折叠?



