определяющий однопотоковую модель static void
using System; namespace MyAClass1 { class Class1 {[STAThread] // Класс // System.STAThreadAttribute, // определяющий однопотоковую модель static void Main(string[] args) { CB varb1 = new CB(); /* Запрос о совместимости типа объекта с типом наследуемого им интерфейса */ if (varb1 is IA) /* Если переменная типа CB является переменной типа класса, реализующего запрашиваемый интерфейс IA, то оператор is вернет значение true. */ {Console.WriteLine ("varb1 - это ссылка на класс, который реализует интерфейс IA");} // Создание объекта типа интерфейса IA IA ivar=(IA)varb1; if (ivar is IA) {Console.WriteLine ("ivar - это ссылка на интерфейс IA");} bool var1=ivar.F1(); Console.WriteLine("Вызов метода F1 интерфейса IA: {0}",var1); // Приведение объекта к типу интерфейса Object ivar1 = varb1 as IA; if (ivar1 != null) Console.WriteLine ( "ivar1 - это ссылка на интерфейс IA"); } } } using System; namespace MyAClass1 { public class CB : MyAClass1.CA,IA {public CB() { } public bool F1() { return true; } public int F2(int a) { return a*10; } } interface IA { bool F1();} } using System; namespace MyAClass1 { public abstract class CA { public CA() { } public abstract int F2(int a); } } |
Листинг 16.2. |
Закрыть окно |
using System;
namespace MyAClass1
{ class Class1
{[STAThread] // Класс
// System.STAThreadAttribute,
// определяющий однопотоковую модель
static void Main(string[] args)
{
CB varb1 = new CB();
/* Запрос о совместимости типа объекта с типом наследуемого им интерфейса */
if (varb1 is IA)
/* Если переменная типа CB является переменной типа класса, реализующего запрашиваемый интерфейс IA, то оператор is вернет значение true. */
{Console.WriteLine ("varb1 - это ссылка на
класс, который реализует интерфейс IA");}
// Создание объекта типа интерфейса IA
IA ivar=(IA)varb1;
if (ivar is IA)
{Console.WriteLine ("ivar - это ссылка на интерфейс IA");}
bool var1=ivar.F1();
Console.WriteLine("Вызов метода F1 интерфейса IA: {0}",var1);
// Приведение объекта к типу интерфейса
Object ivar1 = varb1 as IA;
if (ivar1 != null)
Console.WriteLine ( "ivar1 - это ссылка на
интерфейс IA");
}
}
}
using System;
namespace MyAClass1
{
public class CB : MyAClass1.CA,IA
{public CB() { }
public bool F1() { return true; }
public int F2(int a) { return a*10; }
}
interface IA { bool F1();}
}
using System;
namespace MyAClass1
{ public abstract class CA
{ public CA() { }
public abstract int F2(int a);
}
}