第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

“繼承”的問題

“繼承”的問題

慕姐8265434 2019-07-02 09:53:28
“繼承”的問題我在一個低級別的命名空間中有一個枚舉。我想在“繼承”低級枚舉的中間級別命名空間中提供一個類或枚舉。namespace low{    public enum base    {       x, y, z   }}namespace mid{    public enum consume : low.base    {    }}我希望這是可能的,或者某種可以取代枚舉消費的類,它將為枚舉提供抽象層,但仍然允許該類的實例訪問枚舉。思想?編輯:我之所以沒有在課堂上切換到Const,原因之一是我必須使用的服務需要低級別的枚舉。我得到了WSDL和XSD,它們將結構定義為枚舉。服務不能更改。
查看完整描述

3 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

你可以通過上課實現你想要的:

public class Base{
    public const int A = 1;
    public const int B = 2;
    public const int C = 3;}public class Consume : Base{
    public const int D = 4;
    public const int E = 5;}

現在,您可以使用這些類,類似于它們是枚舉時的情況:

int i = Consume.B;

更新(在你更新問題后):

如果將相同的int值賦值給現有枚舉中定義的常量,則可以在枚舉和常量之間進行轉換,例如:

public enum SomeEnum // this is the existing enum (from WSDL){
    A = 1,
    B = 2,
    ...}public class Base{
    public const int A = (int)SomeEnum.A;
    //...}public class Consume : Base{
    public const int D = 4;
    public const int E = 5;}// where you have to use the enum, use a cast:SomeEnum e = (SomeEnum)Consume.B;


查看完整回答
反對 回復 2019-07-02
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

簡短的回答是否定的。如果你想玩,你可以玩一點:

你總是可以這樣做:

private enum Base{
    A,
    B,
    C}private enum Consume{
    A = Base.A,
    B = Base.B,
    C = Base.C,
    D,
    E}

但是,它并沒有那么好,因為Base.A!=ConsumeA

不過,你總是可以這樣做:

public static class Extensions{
    public static T As<T>(this Consume c) where T : struct
    {
        return (T)System.Enum.Parse(typeof(T), c.ToString(), false);
    }}

為了在基地和消費之間雜交.。

您也可以將枚舉的值轉換為INT,并將它們作為INT而不是enum進行比較,但這種情況也很糟糕。

擴展方法返回應該鍵入類型為T。


查看完整回答
反對 回復 2019-07-02
  • 3 回答
  • 0 關注
  • 404 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號