C# 尝试将方法从字符串转换为整数

C# 尝试将方法从字符串转换为整数,c#,methods,C#,Methods,我正在编写一个程序,它将计算用户编写的字符串中包含的逗号数量 我使用另一种方法来实现这一点,在这种方法中,对写入的字符串进行分析,并返回逗号的数量 我遇到的问题是,我使用的是一个字符串,如果有意义的话,它需要在方法中转换为整数 我知道,只需删除该方法并在“main”中编写代码,就可以更轻松地完成这项工作,但我不想这样做,因为我将扩展该程序,以同时分析所编写字符串中的句号数量和分号数量 这是我的密码: static void Main(string[] args) { Co

我正在编写一个程序,它将计算用户编写的字符串中包含的逗号数量

我使用另一种方法来实现这一点,在这种方法中,对写入的字符串进行分析,并返回逗号的数量

我遇到的问题是,我使用的是一个字符串,如果有意义的话,它需要在方法中转换为整数

我知道,只需删除该方法并在“main”中编写代码,就可以更轻松地完成这项工作,但我不想这样做,因为我将扩展该程序,以同时分析所编写字符串中的句号数量和分号数量

这是我的密码:

static void Main(string[] args)
    {
        Console.WriteLine("Enter a text:");
        string text = Console.ReadLine();
        int count = 0;
        count = NumberOfCommas(text);
        int kommaCount = count;


        int NumberOfCommas(int text1)
        {
            foreach (char letter in text)
            {
                if (letter == ',' )
                {
                    count++;
                }
            }
            return count;
        }
        Console.WriteLine("There's {0} comma(s) in your text.", kommaCount);
        Console.ReadKey();
    }
我得到的错误代码是“无法从'string'转换为'int'。(代码引用了此行的'text'部分:
count=NumberOfCommas(text);


我希望我解释得很好,所以我的问题是:如何解决这个问题?

将函数签名更改为

 int NumberOfCommas(string text1) { ...

同时将此函数移出
主功能。

将函数签名更改为

 int NumberOfCommas(string text1) { ...

同时将此函数移出
主函数。

这是因为您的方法签名。
int NumberOfCommas(int text1)
正在查找
int text1
,它应该是
string text1

另外,我想指出两件事。首先,您使用的是一个局部函数。这没有什么错,而且对于您在这里所做的事情来说,这很好。我可能建议您将其拉出,因为它实际上没有任何变量要求它保持方法的作用域

另一件事是你认为其他人更喜欢你把它全部放在
main
中,但是你说

我将扩大这个项目

所以你决定反对。。。
这是一件好事,也是一种正确的思考/发展方式。因此,如果有人为了简单起见让你把它放在main中,我会告诉你坚持你的观点。你的逻辑是正确的。

这是因为你的方法签名。
static void Main(string[] args)
{
    Console.WriteLine("Enter a text:");
    string text = Console.ReadLine();
    int count = 0;
    count = NumberOfCommas(text);

    Console.WriteLine("There's {0} comma(s) in your text.", count);
    Console.ReadKey();
}

int NumberOfCommas(String text1)
{
    int count;

        foreach (char letter in text1)
        {
            if (letter == ',' )
            {
                count++;
            }
        }
        return count;
}
int NumberOfCommas(int text1)
正在查找
int text1
,它应该是
string text1

另外,我想指出两件事。首先,您使用的是一个局部函数。这没有什么错,而且对于您在这里所做的事情来说,这很好。我可能建议您将其拉出,因为它实际上没有任何变量要求它保持方法的作用域

另一件事是你认为其他人更喜欢你把它全部放在
main
中,但是你说

我将扩大这个项目

所以你决定反对。。。 这是一件好事,也是正确的思考/发展方式,所以如果有人告诉你为了简单起见把它放在main中,我会告诉你坚持你的观点。你的逻辑是正确的

static void Main(string[] args)
{
    Console.WriteLine("Enter a text:");
    string text = Console.ReadLine();
    int count = 0;
    count = NumberOfCommas(text);

    Console.WriteLine("There's {0} comma(s) in your text.", count);
    Console.ReadKey();
}

int NumberOfCommas(String text1)
{
    int count;

        foreach (char letter in text1)
        {
            if (letter == ',' )
            {
                count++;
            }
        }
        return count;
}
有几个错误。函数的参数数据类型应该是字符串,foreach循环中的文本应该是text1。并且您不需要计算变量


有几个错误。函数的参数数据类型应该是字符串,foreach循环中的文本应该是text1。并且您不需要计算变量。

您好,您的方法参数是
int
,但您将
字符串作为参数传递。您好,您的方法参数是
int
,但您传递了
字符串作为参数。这很有帮助!非常感谢。这很有帮助!非常感谢。