为什么我在TryParse上得到ArgumentException?

时间:2015-10-18 05:13:27

标签: c#

我的代码片段是

    private static void parseEquationArgs ( string [] cargs, Dictionary<int,Int64> argdic )
    {
        //  cargs:  Command-line arguments
        // argdic:  Dictionary in which to place the equation arguments

        Int64 thisval;
        for ( int k = 1, n = cargs.Length; k < n; ++k )
        {
            // TryParse reference: https://msdn.microsoft.com/en-us/library/system.int64.tryparse(v=vs.110).aspx
            if ( Int64.TryParse(cargs[k],thisval) )
            {

,错误是

最好的重载方法匹配&#39; long.TryParse(string,out long)&#39;有一些无效的论点。如果我使用上面的long代替Int64,我会收到同样的错误。无论如何,文档说其中一个签名是

public static bool TryParse(
    string s,
    out long result
)

所以我不明白这里出了什么问题......

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您收到错误是因为您没有使用out修饰符。这是必需的,你不能省略它。改变

if ( Int64.TryParse(cargs[k],thisval) )

if ( Int64.TryParse(cargs[k], out thisval) )