out关键字不能与C#中的方法中的方法一起使用

时间:2015-01-09 19:50:35

标签: c# methods out

我试图在方法中使用out关键字返回一个字符串,并在另一个方法中使用方法和out的返回结果。但是,即使我看到它在调试过程中设置了变量StringD,但是当Method1开始时,StringA会变为空白。

我希望当它将StringD设置为"测试"在Method2中,它将被传递回main以立即在Method1中使用,因此它可以在两行中完成。这是C#中的意图还是错误?我需要用4行代替吗?

我已经列出了辅助主要部分,它将它变成了四行,我测试了它并且确实将StringD设置为"测试"

在我的主要

String StringD = "";
Method1(StringD, Method2(out StringD, ""));

Secondary Main(这个有效,但我更喜欢使用第一个)

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;
    }

 }

1 个答案:

答案 0 :(得分:1)

您可以在Method1

中更改参数顺序
private void Method1(Boolean BoolA, String StringA)
{
    String StringE = "";
    Boolean BoolB = false;

    StringE = StringA;
    BoolB = BoolA;
}

然后这样称呼:

Method1(Method2(out StringD, ""), StringD);

这样在Method2传递给方法之前调用StringD