out 关键字不适用于 C# 中方法中的方法
out keyword not working with method in method in C#
我正在尝试 return 一个字符串,在一个方法中使用 out
关键字,并在另一个方法中使用该方法和输出的 returned 结果。但是,即使我看到它在通过 Method2 后立即在调试中设置变量 StringD,StringA 在 Method1 开始时变为空白。
我希望当它在 Method2 中将 StringD 设置为 "Test" 时,它会被传回 main 以立即在 Method1 中使用,这样它就可以分两行完成。这是故意的还是 C# 中的错误?我是否必须改用 4 行来执行此操作?
我已经列出了次要主线,它只是将它分成四行,我测试了它们并将 StringD 设置为 "Test"
在我的主要
String StringD = "";
Method1(StringD, Method2(out StringD, ""));
次要主(这个可以,但我宁愿使用第一个)
String StringD = "";
Boolean BoolC = false;
BoolC = Method2(out StringD, "");
Method1(StringD, BoolC);
我的方法
private void Method1(String StringA, Boolean BoolA)
{
String StringE = "";
Boolean BoolB = false;
StringE = StringA;
BoolB = BoolA;
}
private Boolean Method2(out String StringB, String StringC)
{
StringB = "";
if (StringC == "")
{
StringB = "Test";
return true;
}
else
{
return false;
}
}
您可以在 Method1
中更改参数顺序
private void Method1(Boolean BoolA, String StringA)
{
String StringE = "";
Boolean BoolB = false;
StringE = StringA;
BoolB = BoolA;
}
然后这样称呼它:
Method1(Method2(out StringD, ""), StringD);
这样 Method2
在 StringD
传递给方法之前被调用。
我正在尝试 return 一个字符串,在一个方法中使用 out
关键字,并在另一个方法中使用该方法和输出的 returned 结果。但是,即使我看到它在通过 Method2 后立即在调试中设置变量 StringD,StringA 在 Method1 开始时变为空白。
我希望当它在 Method2 中将 StringD 设置为 "Test" 时,它会被传回 main 以立即在 Method1 中使用,这样它就可以分两行完成。这是故意的还是 C# 中的错误?我是否必须改用 4 行来执行此操作?
我已经列出了次要主线,它只是将它分成四行,我测试了它们并将 StringD 设置为 "Test"
在我的主要
String StringD = "";
Method1(StringD, Method2(out StringD, ""));
次要主(这个可以,但我宁愿使用第一个)
String StringD = "";
Boolean BoolC = false;
BoolC = Method2(out StringD, "");
Method1(StringD, BoolC);
我的方法
private void Method1(String StringA, Boolean BoolA)
{
String StringE = "";
Boolean BoolB = false;
StringE = StringA;
BoolB = BoolA;
}
private Boolean Method2(out String StringB, String StringC)
{
StringB = "";
if (StringC == "")
{
StringB = "Test";
return true;
}
else
{
return false;
}
}
您可以在 Method1
private void Method1(Boolean BoolA, String StringA)
{
String StringE = "";
Boolean BoolB = false;
StringE = StringA;
BoolB = BoolA;
}
然后这样称呼它:
Method1(Method2(out StringD, ""), StringD);
这样 Method2
在 StringD
传递给方法之前被调用。