Working with Interfaces: is operator : is « Operator « C# / CSharp Tutorial





using System;

interface Printable
{
    void MarginX(float factor);
    void MarginY(float factor);
}
public class Component
{
    public Component() {}
}
public class TextField: Component, Printable
{
    public TextField(string text)
    {
        this.text = text;
    }
    // implementing Printable.MarginX()
    public void MarginX(float factor)
    {
        Console.WriteLine("MarginX: {0} {1}", text, factor);
        // scale the object here.
    }
    
    // implementing Printable.MarginY()
    public void MarginY(float factor)
    {
        Console.WriteLine("MarginY: {0} {1}", text, factor);
        // scale the object here.
    }
    
    private string text;
}
class Test
{
    public static void Main()
    {
        Component[] dArray = new Component[100];
        
        dArray[0] = new Component();
        dArray[1] = new TextField("A");
        dArray[2] = new TextField("B");
        
        foreach (Component d in dArray)
        {
            if (d is Printable)
            {
                Printable scalable = (Printable) d;
                scalable.MarginX(0.1F);
                scalable.MarginY(10.0F);
            }
        }
    }
}
MarginX: A 0.1
MarginY: A 10
MarginX: B 0.1
MarginY: B 10










3.12.is
3.12.1.Type operators: Is
3.12.2.is operator in class hiearchy
3.12.3.Use 'is' to avoid an invalid cast.
3.12.4.Working with Interfaces: is operator
3.12.5.Test if someObject is, or is derived from, a TextReader using the is operator
3.12.6.'is' operator for value data type: int, long and float
3.12.7.Use is in Console.WriteLine