-2
我有一個函數foo(Random r)
,它的輸入中有一個Random。將'int'投射到'Random'
有時隨機由用戶給出,然後不是隨機類型,我不知道如何將int
或byte[]
等其他類型的值分配給Random
。 我的意思是有時候我需要這個函數來調用foo(int r)
。 順便說一下,我只是從一個dll調用這個函數,並沒有源代碼。
我怎樣才能通過int
爲Random
?
我有一個函數foo(Random r)
,它的輸入中有一個Random。將'int'投射到'Random'
有時隨機由用戶給出,然後不是隨機類型,我不知道如何將int
或byte[]
等其他類型的值分配給Random
。 我的意思是有時候我需要這個函數來調用foo(int r)
。 順便說一下,我只是從一個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;
}
}
在採樣功能
像
private int GetRandomNumber(Random rand)
{
return rand.Next();
}
那麼,如果你調用如下
int randNum = GetRandomNumber(new NotRandom(3));
randNum總是有你傳遞NotRandom的構造函數參數3。
有趣:)謝謝你 – user3001145 2014-10-21 11:49:29
我不認爲隨機意味着你的想法。 – 2014-10-11 13:45:47
根據圖書館手冊創建一個新的Random類並根據其初始化。 – Santhos 2014-10-11 13:46:34
如果你想傳遞一個'int'或一個'byte []'或者其他類型的類型,你需要爲你的方法創建接受每種類型的重載。 – 2014-10-11 13:48:09