0
我正在寫一個C#應用程序,將產生地下城散裝&龍字符實施類型約束。然而,當我遇到一個字符參數的「獎金」的概念時,我首先跑到牆上。正確地限制通用類型的獎金方法逃脫我。這裏是什麼,我有一個例子:對於未關聯的C#類
public interface IAbilityScore : IBaseEntity
{
string Name { get; set; }
}
public interface IBonus<T,K> where T : IBonusable<K>
{
K Value { get; set; }
}
public interface IBonusable<T>
{
T Value { get; set; }
}
public interface ICharacterAbilityScore : IBaseEntity, IBonusable<int>
{
ICharacter Character { get; set; }
IAbilityScore AbilityScore { get; set; }
bool IsSaveProficient { get; set; }
}
我所面臨的問題是,從用戶的角度,我希望用戶能夠添加「這場比賽給了+2加值智能」。不幸的是,能力分數「智力」在與角色關聯之前不會具有Value屬性,從而導致IBonusable約束成爲問題。
我希望能夠將IBonus的value屬性約束爲與IBonusable項目的value屬性相同的類型,而無需將獎勵直接綁定到特定字符(這將在我的上述實現中發生,與ICharacterAbilityScore inherting IBonusable)。
有沒有實現這一點的唯一接口,方法,否則我將不得不增加時,我定義了具體的實現這一約束?
另外,我打算使用代碼優先EF來構建數據庫,如果這影響了答案。