如何调用从库到C#控制台的方法

时间:2012-02-22 06:05:36

标签: c# methods class-library

我在新库中创建了一个方法 这是我的代码

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)':并非所有代码路径都返回值”
  3. 这是什么意思?

    抱歉,我是一名新程序员。

3 个答案:

答案 0 :(得分:1)

return true移至for循环之后。

试着理解我为什么这么说:)

答案 1 :(得分:1)

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);
        }
    }

答案 2 :(得分:1)

这是一个编译错误,与从另一个程序调用它无关。基本上,通过所有if和else,有一条执行路径不会从函数返回值。

虽然您可以在方法的末尾添加return true来满足 编译器,你的逻辑也有缺陷,因为在内部(在循环中),你返回true,尽管它实际上可能不会成为素数。将return true移到循环外部并删除循环中的else部分。

要从另一个程序集/程序调用它,您必须引用此程序集并调用该方法。您也可以添加一个using语句。