所以我正在使用ideone在C#中编写一个程序,我第一次使用Mono。我正在尝试使用BigInteger类(Mono.Math.BigInteger),但我一直在收到错误。这是我下面的代码。发生了什么,我该如何解决?谢谢。
using System;
using Mono.Math;
public class TFIB
{
public static int Main()
{
const int FIB_SEQUENCE_SIZE = 300;
BigInteger[] FibonacciSequence = new BigInteger[FIB_SEQUENCE_SIZE];
// Calculate Fibonacci Sequence
FibonacciSequence[0] = 0;
FibonacciSequence[1] = 1;
for (int i = 2; i < FIB_SEQUENCE_SIZE; i++)
{
FibonacciSequence[i] = FibonacciSequence[i - 1] + FibonacciSequence[i - 2];
}
while (true)
{
string[] tokenInput = Console.ReadLine().Split(' ');
Mono.Math.BigInteger lowerBound = Mono.Math.BigInteger.Parse(tokenInput[0]);
BigInteger upperBound = BigInteger.Parse(tokenInput[1]);
if (lowerBound == 0 && upperBound == 0)
{
break; // ending sequence found
}
else
{
// find the number of fibonacci sequences
int numbersInRange = 0;
for (int i = 0; i < FIB_SEQUENCE_SIZE; i++)
{
if (FibonacciSequence[i] >= lowerBound)
{
if (FibonacciSequence[i] <= upperBound)
{
numbersInRange++;
}
else
{
continue; // there is nothing more to find
}
}
}
Console.WriteLine(numbersInRange);
}
}
return 0;
}
}
这些是我得到的错误:
prog.cs(9,13):错误CS0122:Mono.Math.BigInteger' is inaccessible due to its protection level
/usr/lib/mono/2.0/mscorlib.dll (Location of the symbol related to previous error)
prog.cs(9,23): error CS0122:
由于其保护级别,Mono.Math.BigInteger []'无法访问
/usr/lib/mono/2.0/mscorlib.dll(与先前错误相关的符号的位置)
prog.cs(23,27):错误CS0122:Mono.Math.BigInteger' is inaccessible due to its protection level
/usr/lib/mono/2.0/mscorlib.dll (Location of the symbol related to previous error)
prog.cs(24,17): error CS0122:
Mono.Math.BigInteger'由于其保护级别而无法访问
/usr/lib/mono/2.0/mscorlib.dll(与先前错误相关的符号的位置)
编译失败:4个错误,0个警告
答案 0 :(得分:4)
Mono.Math.BigInteger
位于Mono.Security.dll
,您确定要引用正确的程序集吗?你得到的编译错误表明你不是。
虽然BigInteger
内部使用了mscorlib.dll
,但您无法从那里引用它。
或者,您可以通过将using
更改为System.Numerics
并引用System.Numerics.dll
来实现4.0 System.Numerics.BigInteger
实施,但它看起来并不像Mono.Math
一个,至少现在。
不幸的是,Ideone似乎不允许自定义程序集引用,这意味着您根本无法编译任何解决方案。您只能使用Ideone.com提交错误。
答案 1 :(得分:0)
尝试定位.NET 4.0框架(使用dmcs)
此外,来自t his page:
是的,但后来看到了:
http://blogs.msdn.com/bclteam/archive/2007/04/20/visual-studio-code- 名称 - 奥卡-β-1-已-被释放-INBAR-gazit.aspx
特别是:
来自客户和合作伙伴的一些好的和建设性的反馈 对扩展数值类型感兴趣。我们已经了解到那里 是一些潜在的改进,我们可以做到这种类型更好 满足他们的需求。因此,我们决定从中移除BigInteger Orcas的Beta 1发布使我们能够解决这些问题 关注。 - Jon Skeet“
答案 2 :(得分:0)
鉴于您无法引用程序集,只需将BigInteger.cs直接添加到项目中即可。可在此处找到来源:https://github.com/mono/mono/blob/master/mcs/class/Mono.Security/Mono.Math/BigInteger.cs