سؤال

أحاول إنشاء فئة واجهات TypeScript كاملة مع التعدادات المناسبة.

أنا عالق حول كيفية الحصول على قيمة عضو التعداد.

Enum.Members يحصل على الكود ، وليس codeproperties ، وإذا حاولت الإلقاء ، فإنه ينفصل. كما أنه يكسر مع الترميز.

ما أحاول القيام به هو الحصول على القيمة بحيث تكون صريحة مع Value1 = 1 ، value2 = 2 وما إلى ذلك بدلاً من القيمة فقط ، القيمة 2 لأن التعدادات قد لا تكون 0.

أي مساعدة سيكون موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

"CodeElements"يبدو كما لو كنت تستخدم واجهات Envdte للوصول إلى تعداداتك. إذا كان الأمر كذلك ، فإن جميع عناصر التعداد موجودة في Members-تملك EnvDTE.CodeEnum يكتب. هم من النوع EnvDTE.CodeVariable ويتم تخزين القيمة الصريحة في InitExpression من المتغير.

ألق نظرة على هذا التعداد:

    // C# Enum to reflect 
    public enum MyEnum { Hi = 10, There = 15 }

وهذا T4 CODESNIPPET يعكس التعداد:

    <#
      // the enumeration object you already seem to have
      EnvDTE.CodeEnum theEnum;

      // iterate all enumeration items
      foreach(EnvDTE.CodeVariable variable in theEnum.Members)
      {
          // render name and value
          #><#= variable.Prototype #> = <#= variable.InitExpression.ToString() #>
    <#}
    #>

يجب أن يؤدي إلى:

    Hi = 10
    There = 15

امل ان يساعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top