新手提问,不要笑呀。(ifunction1)a 是强制转换吗?

大韩 2009-03-15 08:45:37
using System;
namespace InterfaceExample1
{
interface Ifunction1
{
int sum(int x1, int x2);
}
class MyTest : Ifunction1
{
public int sum(int x1, int x2)
{
return x1 + x2;
}
}
class Program
{
static void Main(string[] args)
{
MyTest a = new MyTest();
Console.WriteLine(a.sum(10, 20)); //这个我明白

Ifunction1 f1 = (Ifunction1)a; //问题在这,这个为什么可以呢
Console.WriteLine(f1.sum(20, 30));
Console.ReadLine();
}
}
}
请问这里(ifunction1)a 起到一个什么作用,怎么解释比较清楚。。
...全文
136 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tommir3 2009-03-15
  • 打赏
  • 举报
回复
好问题,学习了
cppfaq 2009-03-15
  • 打赏
  • 举报
回复

如楼上言,这个例子不好
vrhero 2009-03-15
  • 打赏
  • 举报
回复
就是强制转换...因为MyTest继承了Ifunction1接口...

不过这个例子就是纯粹为了演示接口而强制转换,实际应用中没有这么写的...因为可以隐式转换不需要强制...
wuyq11 2009-03-15
  • 打赏
  • 举报
回复
接口支持回调,通过回调调用类方法

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧