![](/img/trans.png)
[英]An instantiable Java generic for <E extends Comparable<E>>
[英]C# equivalent of java Class<E> and E extends Enum<E>
我正在嘗試將一個Java庫轉換為C#代碼,並且由於我是C#的新手(直到最近才使用過泛型),所以我有點掙扎...
至於Java泛型,我正在嘗試(或多或少了解)其操作方式。 盡管我已經檢查了為什么不從Enum <E擴展到Enum <E >>以及如何在Java中使用Class <T>? ,我無法真正理解這段Java代碼中發生的事情,因此,我無法考慮等效的C#代碼。
public abstract class TraciObject<E extends Enum<E>> {
private final String id;
private final EnumMap<E, ReadObjectVarQuery<?>> readQueries;
protected TraciObject(String id, Class<E> enumClass) {
this.id = id;
readQueries = new EnumMap<E, ReadObjectVarQuery<?>>(enumClass);
}
...
}
到目前為止,我在C#中的方法如下:
public abstract class TraciObject<E> where E : Enum<E> { //Non-generic type Enum cannot be used with type arguments
private readonly string id;
private readonly Dictionary<E, ReadObjectVarQuery<E>> readQueries;
protected TraciObject(String id, E enumClass)
{
this.id = id;
readQueries = new Dictionary<E, ReadObjectVarQuery<E>>(enumClass); //cannot convert from E to 'System.Collections.Generic.IEqualityComparer'
}
當我有readQueries = new Dictionary<E, ReadObjectVarQuery<E>>(enumClass);
我試圖獲取與Java的EnumMap(Class<K> keyType)
,但查看有關字典的文檔https://msdn.microsoft.com/es-es/library/xfhwa508(v=vs.110).aspx我不確定這是否可能
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.