C# 铸造';int';至`随机';
我有一个函数C# 铸造';int';至`随机';,c#,random,casting,C#,Random,Casting,我有一个函数foo(Random r),它的输入中有一个Random 有时,随机数是由用户给出的,而不是随机类型,我不知道如何将其他类型的值,如int或byte[]分配给random。 我的意思是有时我需要调用这个函数,就像foo(intr)。 顺便说一下,我只是从dll调用这个函数,没有源代码 如何将int作为Random传递?这个怎么办? 这只返回您设置的整数 class NotRandom : Random { public int Integer{get;set;} p
foo(Random r)
,它的输入中有一个Random
有时,随机数是由用户给出的,而不是随机类型,我不知道如何将其他类型的值,如int
或byte[]
分配给random
。
我的意思是有时我需要调用这个函数,就像foo(intr)
。
顺便说一下,我只是从dll调用这个函数,没有源代码
如何将int
作为Random
传递?这个怎么办?这只返回您设置的整数
class NotRandom : Random
{
public int Integer{get;set;}
public NotRandom(int integer)
{
Integer = integer;
}
public override int Next()
{
return Integer;
}
public override int Next(int maxValue)
{
return Integer;
}
public override void NextBytes(byte[] buffer)
{
for (int i = 0; i < buffer.Length; i++)
buffer[i] = (byte)Integer;
}
protected override double Sample()
{
return (double)Integer;
}
public override int Next(int minValue, int maxValue)
{
return Integer;
}
public override double NextDouble()
{
return (double)Integer;
}
}
那么,如果你打电话如下
int randNum = GetRandomNumber(new NotRandom(3));
randNum始终有3个参数,您可以将NotRandom的构造函数作为参数传递。创建一个新的Random类型的类,并根据库手册正确初始化它。
foo()
是否从r
中提取一个随机数?如果是这样,您可能需要重构foo
,这样您就有了一个函数foo(Int r)
,它接收一个整数,还有foo(Random r)
,它接收一个随机数生成器。然后第二个方法将用一个整数调用第一个方法。@Grantwiney:我只是指用户提供的手动随机值。请确保理解随机值和随机生成器之间的区别!!你所要求的是可能的,但也是完全疯狂和无用的。
int randNum = GetRandomNumber(new NotRandom(3));