csharp.aspone.cz csharp.aspone.cz

Rozhraní

Rozhraní se nesmí nikdy zaměnovat s ničím ostatním co se týče dědění. My se vždy snažíme implementovat nějaké třídě rozhraní. Snažme se psát rozhraní s počátečním písmenem "i" jako Interface.


using System;

public class FancyControl
{
  // třídní proměnná pro potomky
  protected string Data;

  // vlastnost data	
  public string data
	{
	    // pro čtení
		get
		{
			return this.Data;
		}
		
		// pro zápis
		set
		{
			this.Data = value;
		}
	}
}

// naše rozhraní
interface IValidate
{
    // které pouze definuje metodu názvem
    bool Validate();
}

a nyní zdědíme od třídy FandyControl a implementujeme rozhraní IValidate
class MyControl : FancyControl, IValidate
{
    public MyControl()
    {
        data = "Moje data";
    }

    public bool Validate()
    {
        Console.WriteLine("Načítání... {0}", data);
	    
	    return true;
    }
}

// a jednoduché použití
class InterfaceApp
{
    public static void Main()
    {
        MyControl myControl = new MyControl();
        IValidate val       = (IValidate)myControl;
        bool success        = val.Validate();
	
	    Console.WriteLine("Validace od '{0}' byla {1} úspěšná", myControl.data, 
	    (true == success ? "" : "not "));
    }
}