簡體   English   中英

如何訪問 Class 中的枚舉<t>在 C# 中?</t>

[英]How can I access enum in Class<T> in C#?

這段代碼出現錯誤CS0305 有沒有好的方法來做到這一點?

public class Filtre<T> : List<KeyValuePair<Filtre.Methode, object>>
{
    public enum Methode
    {
        Id,
        Keyword
    }
}  

如果您真的想將枚舉保留在Filtre<T>中,則將 class 簽名更改為 -

public class Filtre<T> : List<KeyValuePair<Filtre<T>.Methode, object>>
{
    public enum Methode
    {
        Id,
        Keyword
    }
}

但這有任何意義嗎? 想一想, T的值是否會影響枚舉Methode 不,而是在代碼中增加了不必要的摩擦。

此外,您不能將枚舉聲明為比public更難訪問的東西,因為這樣您將使基礎 class List<KeyValuePair<Filtre<T>.Methode, object>>Filtre<T>更難訪問。

所以,最好在外面聲明枚舉,並簡化 class 簽名 -

public enum Methode
{
    Id,
    Keyword
}

public class Filtre<T> : List<KeyValuePair<Methode, object>>
{
    //
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM