Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我有一个错误;方法'没有重载;getValidString';为参数取值;。这意味着什么?我如何修复它?_C# - Fatal编程技术网

C# 我有一个错误;方法'没有重载;getValidString';为参数取值;。这意味着什么?我如何修复它?

C# 我有一个错误;方法'没有重载;getValidString';为参数取值;。这意味着什么?我如何修复它?,c#,C#,这是我的大学课程,最后期限是在2天内,我仍然必须完成程序测试代码,并在此之前进行评估 下面是例行代码 public static string getValidString(string prompt, int maxLength) { bool valid = false; //The paramter valid is set as a boolean and is set to false. //It is set as a boolean because it

这是我的大学课程,最后期限是在2天内,我仍然必须完成程序测试代码,并在此之前进行评估

下面是例行代码

public static string getValidString(string prompt, int maxLength)
{
    bool valid = false; 
    //The paramter valid is set as a boolean and is set to false. 
    //It is set as a boolean because it is a small data type and 
    //only needs to have true or false
    string tempData = "";
    do // Do while loop is repetition and carries on doing it until the condition becomes true
    {
        Console.Write(prompt + " ?");
        tempData = Console.ReadLine();
        if (tempData == "")
            displayMessage("You have not entered any data, please try again");
        else if (tempData.Length < 3)
            displayMessage("You have not entered text longer than 3, please try again");
        else if (tempData.Any(c => char.IsDigit(c)))
            displayMessage("You have not entered text, please try again");
        else if (tempData.Length > maxLength)
            displayMessage("Name too long it must be 20 or less, please try again");
        else
            valid = true;
    }
    while (valid == false);
    return tempData;
}

您的方法仅使用两个参数定义
公共静态字符串getValidString(字符串提示符,int maxLength)
。但是您用4来调用它:
sError=routine.getValidString(“客户名称”,txtName.Text,3,30)

将缺少的参数添加到getValidString:
公共静态字符串getValidString(字符串提示符、int-maxLength、int-foo、int-bar)


或者从错误行中删除它们:
sError=routine.getValidString(“客户名称”,txtName.Text)

您的方法仅使用两个参数定义
公共静态字符串getValidString(字符串提示符,int maxLength)
。但是您用4来调用它:
sError=routine.getValidString(“客户名称”,txtName.Text,3,30)

将缺少的参数添加到getValidString:
公共静态字符串getValidString(字符串提示符、int-maxLength、int-foo、int-bar)


或者从错误行中删除它们:
sError=routine.getValidString(“客户名称”,txtName.Text)

这只是说没有任何版本的
getValidString
接受您试图传递的参数。查看方法的定义。你可以通过鼠标在上面移动来实现这一点。如果有重载,将有小箭头循环通过它们。该信息将告诉哪些类型以及它们被接受的顺序


哦,我刚刚注意到上面列出了你的定义。正如您所看到的,它只接受一个字符串和一个int;string,string,int,int。您需要更改方法以接受所有这些参数,或者更改调用代码以使用字符串和int调用它。

这只是说没有版本的
getValidString
接受您尝试传递的参数。查看方法的定义。你可以通过鼠标在上面移动来实现这一点。如果有重载,将有小箭头循环通过它们。该信息将告诉哪些类型以及它们被接受的顺序


哦,我刚刚注意到上面列出了你的定义。正如您所看到的,它只接受一个字符串和一个int;string,string,int,int。您需要更改方法以接受所有这些参数,或者更改调用代码以使用string和int调用它。

您的方法
getValidString
有两个输入:
字符串提示符
int maxLength

但是,您要发送2个字符串和2个整数(总共4个)
(“客户名称”,txtName.Text,3,30)

重载
getValidString
以获取如下4个输入

public static string getValidString(string prompt, string name, int length, int maxLength)
或者只发送一个
字符串和一个
int

routine.getValidString("Customer Phone Number", 30);

您的方法
getValidString
有两个输入:
string prompt
int maxLength

但是,您要发送2个字符串和2个整数(总共4个)
(“客户名称”,txtName.Text,3,30)

重载
getValidString
以获取如下4个输入

public static string getValidString(string prompt, string name, int length, int maxLength)
或者只发送一个
字符串和一个
int

routine.getValidString("Customer Phone Number", 30);

您的函数签名定义如下:

public static string getValidString(string prompt, int maxLength) { /* CODE */ }
它有两个参数:
prompt
(一个
string
)和
maxLength
(一个
int

稍后调用时,将向其传递四个参数:

sError = routine.getValidString("Customer Name", txtName.Text, 3, 30);

由于
getValidString()
没有与您正在传递的参数匹配的签名(
string
string
int
int
),C编译器将出现错误。

您的函数签名定义如下:

public static string getValidString(string prompt, int maxLength) { /* CODE */ }
它有两个参数:
prompt
(一个
string
)和
maxLength
(一个
int

稍后调用时,将向其传递四个参数:

sError = routine.getValidString("Customer Name", txtName.Text, 3, 30);

由于
getValidString()
没有与您传递的参数匹配的签名(
string
string
int
int
),C编译器出现了一个错误。

@MauricioGracia该方法的名称未包含在代码块中,因此我没有注意到它。看到它后,我为它添加了一个编辑。@MauricioGracia该方法的名称未包含在代码块中,因此我没有注意到它。看到它后,我为它添加了一个编辑。没有解释如何修复它;-)@MauricioGracia谢谢。更新!没有解释如何修复它;-)@MauricioGracia谢谢。更新@莫里西亚:因为没有明确的方法来解决它。他为什么要通过这些额外的参数,它们应该做什么?要解决这个问题,必须修改(或重载)这个方法,但目的是什么?简单地向函数签名添加适当的参数是没有意义的。显然,他试图通过传递这些参数来完成一些事情,但具体是什么呢?@MauricioGracia:因为没有明确的方法来解决这个问题。他为什么要通过这些额外的参数,它们应该做什么?要解决这个问题,必须修改(或重载)这个方法,但目的是什么?简单地向函数签名添加适当的参数是没有意义的。显然,他试图通过传递这些参数来完成一些事情,但具体是什么呢?