最好的重载方法匹配...有一些无效参数C#

public static void masodmegold(double a,double b,double c)
{
     double x0, x1, x2;
     double gyokalatt = b * b - 4 * a * c;

     if (gyokalatt > 0)
     {
          x1 = ( -b + Math.Sqrt(gyokalatt)) / (2 * a);
          x2 = ( -b - Math.Sqrt(gyokalatt)) / (2 * a);
          Console.WriteLine("két gyök: ", x1, x2);
     }
     else if (gyokalatt == 0)
     {
          x0 = ( -b / (2 * a));
          Console.WriteLine("egy gyök: ", x0);
     }
     else 
     {
          Console.WriteLine("blabla!");    
     }
}
static void Main(string[] args)
{
     Console.WriteLine(masodmegold(1,-4,3));
     Console.ReadKey();
}

并且有两个错误

错误1

'System.Console.WriteLine(string,params object [])'的最佳重载方法匹配有一些无效参数

错误2

参数1:不能从'void'转换为'string'


您的masodmegold方法返回void,请参阅public static void masodmegold ,您需要将返回类型void更改为某些内容

public static string masodmegold(double a,double b,double c)
{ 
 //Your code here 
 //change  Console.WriteLine("két gyök: ", x1, x2); to Cnsole.WriteLine("két gyök: "+ x1+""+ x2);
 return "Some string you want to print"
}

或者,你可以直接调用它而不改变它的返回类型,

masodmegold(1,-4,3)

Console.writeline()需要一个参数,你传递的masodmegold(1,-4,3)返回类型为void,相当于Console.writeline(void) 。 所以你得到的错误。


这是导致编译错误的行:

Console.WriteLine(masodmegold(1,-4,3));

它只是

masodmegold(1,-4,3);

你的masodmegold方法的类型为void因此它不返回anythig - 因此,在执行此方法后,没有任何内容可以传递给ConsoleWriteLine

您应该只调用方法本身,而不将其作为参数传递给Console.WriteLine


错误1您构建字符串的方式不正确,请尝试如下所示:

Console.WriteLine("két gyök: " + x1 + " " + x2);

你也可以看看string.Format方法。

错误2主要方法:

static void Main(string[] args)
{
    masodmegold(1,-4,3);
    Console.ReadKey();
}
链接地址: http://www.djcxy.com/p/89839.html

上一篇: The best overloaded method match for … has some invalid arguments C#

下一篇: int.TryParse failing with Console.ReadLine() in C#