سؤال

أعرف كيفية اختبار كائن لمعرفة ما إذا كان من نوع ما، باستخدام الكلمة الأساسية IS على سبيل المثال.

if (foo is bar)
{
  //do something here
}

ولكن كيف يمكنك اختبار عدم كونها "شريط"؟ لا يبدو أنني أستطيع العثور على كلمة رئيسية تعمل مع IS لاختبار نتيجة سلبية.

راجع للشغل - لدي شعور فظيع أن هذا واضح جدًا، لذا أعتذر مقدمًا...

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

المحلول

if (!(foo is bar)) {
}

نصائح أخرى

يمكنك أيضًا استخدام كمشغل.

يتم استخدام المشغل AS لإجراء التحويلات بين الأنواع المتوافقة.

bar aBar = foo as bar; // aBar is null if foo is not bar

لا توجد كلمة رئيسية محددة

if (!(foo is bar)) ...
if (foo.GetType() != bar.GetType()) .. // foo & bar should be on the same level of type hierarchy

يجب عليك توضيح ما إذا كنت تريد اختبار هذا الكائن بالضبط نوع معين أو قابلة للتعيين من نوع معين.على سبيل المثال:

public class Foo : Bar {}

ولنفترض أن لديك:

Foo foo = new Foo();

إذا كنت تريد معرفة ما إذا كان foo ليس Bar()، فعليك القيام بذلك:

if(!(foo.GetType() == tyepof(Bar))) {...}

ولكن إذا كنت تريد التأكد من أن foo لا يشتق من Bar، فمن السهل التحقق من ذلك باستخدام الكلمة الأساسية as.

Bar bar = foo as Bar;
if(bar == null) {/* foo is not a bar */}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top