Хочу организовать проверку на реализацию интерфейса объектом перед его попыткой приведения. Как это можно просто и быстро сделать?
Для этого есть два отдельных оператора:
- оператор
is
проверяет возможно ли приведение определённого объекта к классу/интерфейсу
пример:
class MyClass : IInterface
{/*....*/}
MyClass instance = new MyClass();
IInterface inter;
if (instance is IInterface) // is вернёт true если приведение возможно и false если приведение невозможно
{
inter = (IInterface)instance ;
}
- оператор
as
вернёт объект к указанному типу (если приведение возможно), иначе вернётnull
пример:
inter = instance as IInterface;
as
это сокращённая форма конструкции приведённой ниже:
if (instance is IInterface)
{
inter = (IInterface)instance ;
}
else
{
inter = null;
}
1 Вподобання