嵌套泛型我有這方面的定義:問題在C#
public interface IHasId
{
string Id { get; set; }
}
public class Something : IHasId
{
public string Id { get; set; }
}
public class Queueable<T>
where T : IHasId, new()
{
public T Item { get; set; }
public int QueueId { get; set; }
}
public class Queue<T>
where T : Queueable<T>, IHasId, new()
{
public void Enqueue(T item)
{
}
public T Dequeue()
{
return default(T);
}
}
public class QueueService
{
private Queue<Queueable<Something>> queue;
//private Queue<Queueable<SomethingElse>> somethingElseQueue;
}
當我編譯這個我得到這些錯誤:
**Error**: The type 'test.Queueable<test.Something>' cannot be used as type parameter 'T' in the generic type or method 'test.Queue<T>'. There is no implicit reference conversion from 'test.Queueable<test.Something>' to 'test.IHasId'.
**Error**: The type 'test.Queueable<test.Something>' cannot be used as type parameter 'T' in the generic type or method 'test.Queue<T>'. There is no implicit reference conversion from 'test.Queueable<test.Something>' to 'test.Queueable<test.Queueable<test.Something>>'.
是這制約的問題? 我在考慮使用Queue類的兩個類型,一個用於實現IHasId,另一個用於Queueable,但我希望這實際上更容易解決。
想法?
在此先感謝! R.
是否有'隊列'丟失? – usr
你能告訴我們'Queue'類的代碼嗎? –
是的,抱歉,現在添加。 –