Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 输出未声明变量的参数_C#_Out - Fatal编程技术网

C# 输出未声明变量的参数

C# 输出未声明变量的参数,c#,out,C#,Out,我有办法 TrySplitStringTwoParts(string data, string separator, out string prefix, out string suffix) 它的调用方式如下: string data = "x.y", r1,r2; TrySplitStringTwoParts(data, ".", out r1, out r2) 我不想使用r1,也就是说,除了此调用之外,它从未被使用过。 为了不声明r1不可以,我可以使用调用trysplitstringt

我有办法

TrySplitStringTwoParts(string data, string separator, out string prefix, out string suffix)
它的调用方式如下:

string data = "x.y", r1,r2;
TrySplitStringTwoParts(data, ".", out r1, out r2)
我不想使用
r1
,也就是说,除了此调用之外,它从未被使用过。
为了不声明
r1
不可以,我可以使用调用
trysplitstringtwparts(数据,“.”,out r1,out r2)的方式吗
ref
out
参数必须在调用中传递,无论您以后是否实际使用该变量。

不,您不能
ref
out
参数必须在调用中传递,无论您以后是否实际使用该变量。

您现在不能这样做。但这是将在
C#6
中添加的功能之一。请参阅roslyn

那么你就可以做到这一点:

TrySplitStringTwoParts(data, ".", out string r1, out string r2)

当然,这只会将声明转移到另一个地方,不声明变量是不可能的。如果你有一个<代码> REF>代码> />代码> Outs< /Cord>参数,那么你必须声明并提供一个参数。如果你不想要这个参数,那么也许你应该考虑改变你的方法签名或者使用方法重载。

你现在不能这么做。但这是将在

C#6
中添加的功能之一。请参阅roslyn

那么你就可以做到这一点:

TrySplitStringTwoParts(data, ".", out string r1, out string r2)

当然,这只会将声明转移到另一个地方,不声明变量是不可能的。如果你有一个<代码>代码> >代码>输出< /Cord>参数,那么你必须声明和提供一个参数。如果你不想要这个参数,那么也许你应该考虑改变你的方法签名或者使用方法重载。< /P>声明R1和R2在哪里?@ RoalStaseCix-字符串数据=“X.Y”,R1,r2;重载它怎么样?然后创建一个没有out r1的重载,r1和r2在哪里声明?@RonaldEstacion-string data=“x.y”,r1,r2;重载怎么样?然后创建一个不带out的重载,它只允许你在不同的地方声明变量,但你仍然必须声明它们。它只允许你在不同的地方声明变量,但你仍然必须声明它们。