下面我将详细讲解“C#调用接口的四种方式介绍”。
1. 接口介绍
接口是一种特殊的类,它只包含成员函数的声明而没有实现,也不包含数据成员。通过接口可以定义一种协议,并按照这个协议来编写类。接口可以被多个类同时实现,并且可以通过接口的引用来调用这些实现。
2. 接口的定义
C# 中定义接口的语法格式如下:
interface 接口名称
{
返回值类型 函数名(参数列表);
返回值类型 属性名
{
get;
set;
}
…
}
其中函数名和属性名只是一种定义,具体可以根据实际需求进行定义。此外,C# 中还有一个关键字 interface
,用于声明接口、实现接口和调用接口。
3. 调用接口的方式
在实际编程中要使用接口,需要通过类来实现接口并调用接口中的成员。接口的实现方式有以下四种:
3.1 显式实现接口
显式实现接口是指类实现接口时,实现接口的成员只能通过接口类型的变量来访问,不能通过类的实例来访问。语法格式如下:
class 类名 : 接口1, 接口2
{
void 接口1.方法名()
{
// 重写接口1中的方法
}
int 接口2.属性名
{
get { … }
set { … }
}
}
示例代码:
interface ITest1
{
void Test();
}
interface ITest2
{
int Score { get; set; }
}
class Test : ITest1, ITest2
{
void ITest1.Test()
{
Console.WriteLine("Implementing ITest1.Test method");
}
private int score = 0;
int ITest2.Score
{
get { return score; }
set { score = value; }
}
}
3.2 隐式实现接口
隐式实现接口是指类实现接口时,实现接口的成员可以通过类的实例或接口类型的变量来访问。语法格式如下:
class 类名 : 接口1, 接口2
{
public void 方法名()
{
// 实现接口1中的方法
}
public int 属性名
{
get { … }
set { … }
}
}
示例代码:
interface ITest1
{
void Test();
}
interface ITest2
{
int Score { get; set; }
}
class Test : ITest1, ITest2
{
public void Test()
{
Console.WriteLine("Implementing ITest1.Test method");
}
public int Score { get; set; }
}
3.3 根据接口变量调用接口实现的方法
通过接口类型的变量调用方法,可以使用 var 或者指定类型的变量。语法格式如下:
接口名称 变量名 = new 实现接口的类();
变量名.方法名();
示例代码:
interface ITest
{
void Test();
}
class Test : ITest
{
public void Test()
{
Console.WriteLine("Implementing ITest.Test method");
}
}
ITest test = new Test();
test.Test();
3.4 实现多个接口的类之间调用
一个实现多个接口的类可以调用其它实现了这些接口的类的方法。语法格式如下:
class 类名 : 接口1, 接口2
{
public void 方法名1()
{
…
}
public void 方法名2()
{
…
}
}
class 其它类名 : 接口1, 接口2
{
void 接口1.方法名1()
{
…
}
void 接口2.方法名2()
{
…
}
}
类名 对象 = new 类名();
接口1 对象1 = (接口1)new 其它类名();
对象.方法名1();
对象1.方法名1();
示例代码:
interface ITest1
{
void Test1();
}
interface ITest2
{
void Test2();
}
class Test : ITest1, ITest2
{
public void Test1()
{
Console.WriteLine("Implementing ITest1.Test1 method");
}
public void Test2()
{
Console.WriteLine("Implementing ITest2.Test2 method");
}
}
class OtherTest : ITest1, ITest2
{
public void Test1()
{
Console.WriteLine("Implementing ITest1.Test1 method in OtherTest");
}
public void Test2()
{
Console.WriteLine("Implementing ITest2.Test2 method in OtherTest");
}
}
Test obj1 = new Test();
OtherTest obj2 = new OtherTest();
obj1.Test1();
obj1.Test2();
((ITest1)obj2).Test1();
((ITest2)obj2).Test2();
以上是关于 C# 调用接口的四种方式介绍的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#调用接口的四种方式介绍 - Python技术站