out参数 - 为什么它不起作用

ker*_*bou 1 c#

以下是一个失败的单元测试,解释了我今天发现的一个错误:

    [TestMethod]
    public void WFT()
    {
        string configDebug = "false";
        bool configDebugEnabled = bool.TryParse(configDebug, out configDebugEnabled);

        Assert.AreEqual(false, configDebugEnabled);
    }
Run Code Online (Sandbox Code Playgroud)

这是如何使测试从红色变为绿色:

    [TestMethod]
    public void WFT()
    {
        string configDebug = "false";
        bool configDebugEnabled;
        bool.TryParse(configDebug, out configDebugEnabled);

        Assert.AreEqual(true, configDebugEnabled);
    }
Run Code Online (Sandbox Code Playgroud)

我无法在C#规范中找到解释这一段的段落,但对这种行为很可能是一个不错的解释.任何人都可以向我解释为什么第一次测试失败了吗?

Dar*_*rov 5

因为如果解析成功,该TryParse方法总是返回,true如果不成功false.在第一种情况下,解析成功,configDebugEnabled = true这不是你断言的.

顺便说一句,除非你写,否则第二次测试也会失败string configDebug = "true".