最好的重载方法匹配...有一些无效参数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#