我在尝试访问另一个类中的静态方法时遇到C#错误。
这是试图访问它的类:
class Problem7
{
public void Solve()
{
GimmePrimes(new long[]{2, 3, 5, 7, 11, 13});
}
}
这是GimmePrimes所在的静态类:
public static class Extensions
{
//....Other static methods that work//
public static IEnumerable<long> GimmePrimes(this long[] firstPrimes)
{
return firstPrimes.Unfold(priorPrimes => priorPrimes.Last().OddNumbersGreaterThan().SkipWhile(candidate => priorPrimes.TakeWhile(prime => prime * prime <= candidate).Any(prime => candidate.IsDivisibleBy(prime))).First());
}
}
两个类都在同一名称空间中。
答案 0 :(得分:9)
Extensions
需要是一个静态类。
public static class Extensions
此外,由于它是一种扩展方法,因此您将其调用错误:
long[] array = new long[] {2, 3, 5, 7, 11, 13 };
IEnumerable<long> primes = array.GimmePrimes();
在相关的附注中,当我有扩展方法类时,我为每个扩展类型创建一个单独的类,以便我不会得到一个巨大的单片类。
public static class IntExtensionMethods
public static class StringExtensionMethods
public static class IEnumerableExtensionMethods
等