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 "));
}
}