interface接口简单用法

    技术2022-07-12  81

    接口包含非抽象类或结构必须实现的一组相关功能的定义。 接口可以定义 static 方法,此类方法必须具有实现,按照约定,接口名称以大写字母 I 开头。

    接口具有以下属性: 接口通常类似于只有抽象成员的抽象基类。 实现接口的任何类或结构都必须实现其所有成员。 接口可以选择性地定义其部分或全部成员的默认实现。 接口无法直接进行实例化。 其成员由实现接口的任何类或结构来实现。 一个类或结构可以实现多个接口。 一个类可以继承一个基类,还可实现一个或多个接口。

    接口调用用法

    class Program { static void Main(string[] args) { interfaceA iA = new A(); iA.AMethod("1234"); Console.ReadKey(); } } public interface interfaceA { void AMethod(string s); } public class A:interfaceA { public void AMethod(string s) { Console.WriteLine("AMethod " + s); } }

    运行结果 多接口及继承

    class Program:interfaceB { static void Main(string[] args) { Program p = new Program(); p.AMethod("A"); p.BMethod("B"); Console.ReadKey(); } public void BMethod(string s) { Console.WriteLine(s); } public void AMethod(string s) { Console.WriteLine(s); } } public interface interfaceA { void AMethod(string s); } public interface interfaceB:interfaceA { void BMethod(string s); }

    运行结果

    在接口中实现事件

    class Program { static void Main(string[] args) { A a = new A(); interfaceA iA = a; iA.testEvent += iA_testEvent; a.Trigger(); Console.ReadKey(); } static void iA_testEvent(object sender, EventArgs e) { throw new NotImplementedException(); } } public interface interfaceA { event EventHandler testEvent; } public class A : interfaceA { public event EventHandler testEvent; public void Trigger() { if (null != testEvent) { Console.WriteLine("Class A Trigger"); testEvent(this, EventArgs.Empty); } } }
    Processed: 0.010, SQL: 9