CS0443语法错误;长度函数上的期望值

时间:2019-02-26 01:57:58

标签: c#

我刚刚开始C#,我以为自己可以写一些自己的东西。我试图编写一个写所有参数的程序,不像C ++,没有argc和argv。这是我的代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArgWrite
{
    class ArgWrite    {
        static void Main(string[] args)
        {

            int i;
            i = 0;
            int amt = ArgLenth(args);
            for (i = 0; i <= amt; i++)
            {
                Console.WriteLine(args[i]);
            }

            Console.ReadKey(true);
        }

        private static int ArgLenth(string[] args)
        {
            return args[].Length();
        }

        private static void Write(string[] args, int i)
        {
            Console.WriteLine(args[i]);
        }
    }
}

请注意:VS2017提供了额外的功能来简化我的代码。

2 个答案:

答案 0 :(得分:0)

您可以像删除int i; i= 0;那样简单地执行此操作。有关for循环,while循环和while循环的更多信息,请参见:

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/for

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArgWrite
{
    class ArgWrite    {
        static void Main(string[] args)
        {

            for (int i = 0; i < args.Length; i++)
            {
                string arg = args[i];
                Console.WriteLine("arg index: [{i}] argument is {arg} ");
            }

            Console.ReadKey();
        }
    }
}

答案 1 :(得分:0)

您遇到以下错误:

return args[].Length();

应该是

return args.Length();

但是,我认为您可以编写简单的示例,而无需使用for语句,而只需使用foreach语句即可。 https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/foreach-in

    using System;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            foreach (var arg in args)
            {
                Console.WriteLine($"{arg} ");
            }

            Console.ReadKey();
        }
    }
}