سؤال

هل هناك سمة مشروطة وليس إلى الوقت الحاضر مماثلة أو ربما وسيلة لاستخدام السمة الشرطية لتشمل فقط وسيلة إذا كان هذا الرمز هو لا تعريف؟

وماذا أنا أبحث عن شيء يعمل مثل هذا:

[Conditional("!SILVERLIGHT")]
private void DoStuffThatSilverlightCant() {...}

ومثل هذا الأسلوب لن يتم تضمين إذا كان SILVERLIGHT رمز موجود.

والسبب في أنني لا أريد أن استخدام #ifdef بسيط هو حتى أستطيع أن الاستفادة من المترجم إزالة بيانات الاتصال دون الحاجة إلى التفاف كل مكالمة الفردية في #ifdef.

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

المحلول

تحديث: فيما يلي مقتطف الشفرة يعمل فقط إذا كان #if في كل داعيا الملف الذي هو ليس من العملي جدا.

#if !SILVERLIGHT
#define NOT_SILVERLIGHT
#endif

[Conditional("NOT_SILVERLIGHT")]
private void DoStuffThatSilverlightCant() {...}

وماذا يمكن عمله ومع ذلك، هو أن يكون تكوين بناء لأي منصة كنت تستخدم هذه الإرادة / تحديد رمز الحاجة (NOT_SILVERLIGHT في هذه الحالة).

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