"is" işlemci türü bir türün başka bir tür ile uyumlu olup olmadığını program çalışırken denetlemenizi sağlar.
"deyim is tür" şeklinde yane örnek olarak "class ISOperatorApp" şeklinde tanımlanır.
using System;
public class FancyControl
{
protected string Data;
public string data
{
get
{
return this.Data;
}
set
{
this.Data = value;
}
}
}
interface ISerializable
{
bool Save();
}
interface IValidate
{
bool Validate();
}
class MyControl : FancyControl, IValidate
{
public MyControl()
{
data = "my grid data";
}
public bool Validate()
{
Console.WriteLine("Validating...{0}", data);
return true;
}
}
class AsOperatorApp
{
public static void Main()
{
MyControl myControl = new MyControl();
ISerializable ser = myControl as ISerializable;
if (null != ser)
{
bool success = ser.Save();
Console.WriteLine("The saving of '{0}' was {1}successful",
myControl.data,
(true == success ? "" : "not "));
}
else
{
Console.WriteLine("The ISerializable interface is not implemented.");
}
}
}
--------------------------------------------------------------------------
Kalın işaretli olan bölüm aşağıdaki gibide kullanılabilir;
if (mycontrol is ISeriaizable)
{
ISerializable ser = (ISerializable)mycontrol;
bool success = ser.Save();
...
.......
..........
"if" kod akışına veya isteğe bağlı olarak yukarıdaki gibide kullanılabilir.
Örnek uygulamamızda SYN. Tom Archer ın örnekler kütüphanesinden bulduğum MyControl ve ISerializable yönetimi arasındaki uyumluluğu deneyen örneği inceledik.