如何将一个方法从库调用到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;
                }
            }
        }
    }
}
  1. 如何在控制台"program.cs"中调用该方法
  2. 我得到一个错误,上面写着"错误2'ClassLibrary1.Class1.ISprime(int)':并非所有代码路径都返回值"

这是什么意思?

对不起,我是个新程序员。

如何将一个方法从库调用到C#控制台

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语句。