سؤال

وأريد أن إنشاء فئة مع تعداد متداخلة.

public class Foo
{
    public enum Views
    {
    }
}
الطبقة

ولكن لا يوجد لديه System.Reflection.Emit.TypeBuilder DefineNestedEnum DefinedNestedType فقط. ModuleBuilder.DefineEnum وجود ودعونا لي خلق التعداد ولكن أجد أي وسيلة لجعلها متداخلة. هل يمكنني إنشاء التعداد دون تزوير (أي باستخدام EnumBuilder)؟


وانتقلت بلدي حل لإجابة أدناه.

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

المحلول 2

ونقل جوابي أنا وضعت في السؤال إلى هنا.


والشيء الوحيد الذي يمكنني أن أفكر من هو تحديد نوع متداخلة من الطبقة مختومة الذي يمتد System.Enum وتحديد العامة | ثابتة | المجالات الحرفية مع قيم ثابتة. هذا هو أساسا ما # مترجم C يقوم به بناء على ما تعلمته من تفكيك ذلك. إذا كنت تفعل ذلك، والرجوع إلى الجمعية التحسس يعترف بانه التعداد وظائف تماما مثل التعداد.


وهذا هو بالضبط طريقة MSDN يظهر أن جيريمي المرتبطة.

نصائح أخرى

وانظر المثال في نهاية هذه المقالة ، الذي يفعل بالضبط ما تريد. (يمكنك استخدام DefineNestedType مع الحجج الصحيحة)

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