C# 中,一个类继承了接口A,如何通过接口调用这个类中未在接口中声明的函数
时间: 2024-03-26 13:34:56 浏览: 59
c#继承中的函数调用实例
在 C# 中,如果一个类实现了接口A,那么可以通过将类的实例化对象转换为接口A类型,然后使用接口A调用接口A中声明的函数和属性。但是,如果该类中有一些未在接口A中声明的函数或属性,那么就无法通过接口A直接访问这些函数或属性了。
如果需要访问这些未在接口中声明的函数或属性,可以将类的实例化对象转换为该类的类型,然后直接访问这些函数或属性。例如:
```c#
interface IA
{
void Func1();
}
class MyClass : IA
{
public void Func1()
{
Console.WriteLine("IA.Func1");
}
public void Func2()
{
Console.WriteLine("MyClass.Func2");
}
}
class Program
{
static void Main(string[] args)
{
MyClass obj = new MyClass();
// 通过接口调用 IA.Func1
IA ia = obj;
ia.Func1();
// 直接调用 MyClass.Func2
obj.Func2();
}
}
```
在上面的例子中,MyClass 类实现了接口 IA,并且定义了一个未在接口中声明的函数 Func2。在 Main 函数中,首先将 MyClass 的实例化对象 obj 转换为 IA 类型,然后通过 IA 接口调用了 IA.Func1 函数。接着,直接使用 obj 对象调用了 MyClass.Func2 函数。
阅读全文