is — позволяет определить, имеет ли объект совместимость с заданным типом.
as — выполняет операцию приведения типов объекта к заданному типу, не генерирую исключения, в случае, если объект и заданный тип являются не совместимыми.
as — выполняет операцию приведения типов объекта к заданному типу, не генерирую исключения, в случае, если объект и заданный тип являются не совместимыми.
| базовый класс | производный класс |
| One { } | Two : One { } |
| One O = new One(); | Two T = new Two(); |
| One O = new Two(); |
оператор is
Main.cs
usingSystem;classOne {-
publicintA {set;get;} }classTwo : One {-
publicintB {set;get;} }classProgram {-
publicstaticintMain() { -
One O =newOne(); -
Two T =newTwo(); -
One OO =newTwo();//можно -
if(OisTwo) { -
Console.WriteLine("T=(Two)O --- тип O привести к типу Two --- МОЖНО"); -
T = (Two)O; -
} -
else{ -
Console.WriteLine("T=(Two)O --- тип O привести к типу Two --- НЕЛЬЗЯ");//нельзя -
} -
if(TisOne) { -
Console.WriteLine("O=(One)T --- тип T привести к типу One --- МОЖНО");//можно -
O = (One)T; -
} -
else{ -
Console.WriteLine("O=(One)T --- тип T привести к типу One --- НЕЛЬЗЯ"); -
} -
Console.ReadKey(); -
return0; -
} }
usingSystem;classOne {-
publicintA {set;get;} }classTwo : One {-
publicintB {set;get;} }classProgram {-
publicstaticintMain() { -
One O =newOne(); -
Two T =newTwo(); -
One OO =newTwo();//можно -
if(OisTwo) { -
Console.WriteLine("T=(Two)O --- тип O привести к типу Two --- МОЖНО"); -
T = (Two)O; -
} -
else{ -
Console.WriteLine("T=(Two)O --- тип O привести к типу Two --- НЕЛЬЗЯ");//нельзя -
} -
if(TisOne) { -
Console.WriteLine("O=(One)T --- тип T привести к типу One --- МОЖНО");//можно -
O = (One)T; -
} -
else{ -
Console.WriteLine("O=(One)T --- тип T привести к типу One --- НЕЛЬЗЯ"); -
} -
Console.ReadKey(); -
return0; -
} }
T=(Two)O --- тип O привести к типу Two --- НЕЛЬЗЯ
O=(One)T --- тип T привести к типу One --- МОЖНО
O=(One)T --- тип T привести к типу One --- МОЖНО
оператор as
Main.cs
usingSystem;classOne {-
publicintA {set;get;} }classTwo : One {-
publicintB {set;get;} }classProgram {-
publicstaticintMain() { -
One O =newOne(); -
Two T =newTwo(); -
T = OasTwo; -
if(T ==null) { -
Console.WriteLine("T=(Two)O --- тип O привести к типу Two --- НЕЛЬЗЯ");//нельзя -
} -
else{ -
Console.WriteLine("T=(Two)O --- тип O привести к типу Two --- МОЖНО"); -
} -
One OO =newOne(); -
Two TT =newTwo(); -
OO = TTasOne; -
if(OO ==null) { -
Console.WriteLine("OO=(One)TT --- тип TT привести к типу One --- НЕЛЬЗЯ"); -
} -
else{ -
Console.WriteLine("OO=(One)TT --- тип TT привести к типу One --- МОЖНО");//можно -
} -
Console.ReadKey(); -
return0; -
} }
usingSystem;classOne {-
publicintA {set;get;} }classTwo : One {-
publicintB {set;get;} }classProgram {-
publicstaticintMain() { -
One O =newOne(); -
Two T =newTwo(); -
T = OasTwo; -
if(T ==null) { -
Console.WriteLine("T=(Two)O --- тип O привести к типу Two --- НЕЛЬЗЯ");//нельзя -
} -
else{ -
Console.WriteLine("T=(Two)O --- тип O привести к типу Two --- МОЖНО"); -
} -
One OO =newOne(); -
Two TT =newTwo(); -
OO = TTasOne; -
if(OO ==null) { -
Console.WriteLine("OO=(One)TT --- тип TT привести к типу One --- НЕЛЬЗЯ"); -
} -
else{ -
Console.WriteLine("OO=(One)TT --- тип TT привести к типу One --- МОЖНО");//можно -
} -
Console.ReadKey(); -
return0; -
} }
T=(Two)O --- тип O привести к типу Two --- НЕЛЬЗЯ
OO=(One)TT --- тип TT привести к типу One --- МОЖНО
OO=(One)TT --- тип TT привести к типу One --- МОЖНО