2017-07-23 32 views
0

我對C#很新,所以請原諒我的初學者問題。我已經搜索過,但還沒有找到我想要的解決方案。在C#中創建一個隨機子類的對象#

我有一個抽象類和它的幾個子類。我們只是說subclass1到subclass9。

我現在要做的是從隨機子類中生成一個對象。其實我想列出一些名單,包括預選這些班級。如:List1包括子類1,3,4和6,List2包括1,2,5,6和9等等。所以我可以隨時說:給我一個來自List2的隨機對象。

我的想法是生成數組並將這些子類放入其中,然後選擇數組中的一個隨機元素。但是這對我來說並不成功。我還沒有想出如何用對象填充數組,所以我不確定這是不可能的,或者我沒有找到正確的語法。任何人都可以給我一個後面如何生成這些列表?

因爲我是allready問:有沒有一種簡單的方法給列表中的對象不同的概率occour?

編輯: 其實我想了解如何在不同的情況下處理這樣的事情。

例如:我有一個抽象類項目。我可能會有不同的子類,如魔藥,匕首,滾動等等。現在我可能想在戰鬥後產生一些隨機戰利品,也許是兩個隨機物品。但我不想放棄任何物品。例如,我不想讓一隻熊掉下匕首或卷軸,但更多的東西像熊皮和一些遺留在他洞穴裏的骨頭。所以我需要不同的可能的戰利品清單,我可以從中隨機產生。

我該怎麼做?就像我說過的,我嘗試將類放入數組中,但我還沒有想出如何做到這一點。甚至不知道如何去做是個正確的想法。

我想如何將特定對象放入數組或列表中。但是我不想生成20個物體來隨機挑選其中的兩個並且破壞其中的其他物體。

謝謝你的幫助!

+3

目前尚不清楚你的目標是什麼以及你堅持的是什麼。你從列表中挑選對象時遇到問題嗎?創建一個隨機類型的對象?創建一個可以容納不同類型對象的列表?請[編輯]您的文章只包括*一個*問題,並澄清你需要幫助。 –

+1

*「我試圖將類放入數組中」* - 您是什麼意思?顯示你嘗試的代碼(並解釋你有什麼錯誤等) – UnholySheep

回答

0

您可以使用factory methodtable of methods模式。

private static Func<Item>[] tableOfMethods = 
{ 
    () => new Potion() 
} 

public static Item GetRandomItem() 
{ 
    var randomIndex = generate index here.... 
    return tableOfMethods[randomIndex](); 
} 

P.S.數組創建的語法在這裏可能是錯誤的,從移動設備寫入它。

+1

謝謝。這表明我可以與之合作。 – JustATourist

相關問題