我正在爲C#中的遊戲構建內部邏輯,並且來自C++,這對於我來說可能會在翻譯時丟失。通過引用或變通方法存儲對象
我有一個對象,能夠計算它提供的獎金並將其作爲整數值返回。計算意圖是動態的,並且可以根據各種變量而改變。
public class Ability: Buffable
{
public string abbr { get; private set; }
public Ability(string name, string abbr, uint score) : base(name, score)
{
this.abbr = abbr;
}
// Ability Modifier
// returns the ability modifier for the class.
public int Ability_modifier()
{
const double ARBITARY_MINUS_TEN = -10;
const double HALVE = 2;
double value = (double)this.Evaluate();
double result = (value + ARBITARY_MINUS_TEN)/HALVE;
// Round down in case of odd negative modifier
if (result < 0 && ((value % 2) != 0))
{
result--;
}
return (int)result;
}
然後我有另一個對象,技能,應該知道該獎金並將其添加到它的計算。我想通過引用將技能傳遞給Skill的構造函數,然後存儲該引用,以便在能力改變計算的情況下也可以。這顯然存儲引用的明顯問題是C#中的禁忌。
是否有解決這個問題的方法或解決這個問題的方法,我的指針感染的思維不被考慮?我非常希望不必每次都將能力傳遞給評估Skill的函數,因爲引用的那個函數在構建之後永遠不會改變。
謝謝,我絕對誤解了這是如何工作的。這些文章相當有幫助。 – stygma 2013-03-23 18:04:14