如何将一个方法从库调用到C#控制台
本文关键字:调用 控制台 方法 一个 | 更新日期: 2023-09-27 18:25:35
我在一个新库中创建了一个方法这是我的代码
namespace ClassLibrary1
{
public class Class1
{
public static bool ISprime(int prime)
{
if (prime < 2)
return false;
else if (prime == 2)
return true;
else
{
for (int i = 2; i < prime; i++)
{
if (prime % i == 0)
return false;
else
return true;
}
}
}
}
}
- 如何在控制台"program.cs"中调用该方法
- 我得到一个错误,上面写着"错误2'ClassLibrary1.Class1.ISprime(int)':并非所有代码路径都返回值"
这是什么意思?
对不起,我是个新程序员。
1.)通过执行以下操作调用该方法:
ClassLibrary1.Class1.ISprime(123);
或
Class1.ISprime(123); // make sure to reference ClassLibrary1 at the top of your class
2.)您需要在方法的最后返回一些值。我还改变了一些逻辑:
public static bool ISprime(int prime)
{
if (prime == 1)
return false;
if (prime == 2)
return true;
for (int i = 2; i < Math.Sqrt(prime); ++i) {
if (prime % i == 0)
return false;
}
return true;
}
3.)回答与逻辑不同的地方。试着运行这个,你会发现不同之处。
for (int n = -10; n < 10; n++)
{
if (Class1.IsPrimeCorrect(n) != Class1.IsPrimeIncorrect(n))
{
Console.WriteLine(n);
}
}
将return true
移动到for
循环之后。
试着理解我为什么这么说:)
这是一个编译错误,与从其他程序调用它无关。基本上,通过所有的if和else,都有一条执行路径不会从函数返回值。
而您可以在方法的末尾添加一个return true
来满足编译器,您的逻辑也是有缺陷的,因为在内部(在循环中)else中,您正在返回true,尽管它实际上可能不是素数。将return true
移到循环外,并移除循环中的其他部分。
若要从另一个程序集/程序调用此,必须引用此程序集并调用该方法。您也可以添加using语句。