接口为啥也能实例化?有一段代码搞不懂

hex_maddog 2008-01-17 11:42:52
public interface IMerge
{
int Length{get;}
IMerge Merge(IMerge others);
}
这里有一段街口实例化的东东看不懂。。求救啊
注:这是在一段通过编译的代码中截下来的
...全文
141 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
psychese 2008-01-18
  • 打赏
  • 举报
回复
这个不是实例化,看看下面的代码就明白了

interface ITest
{
ITest ReturnObj();
}
class TestClass : ITest
{
public ITest ReturnObj()
{
return new TestClass(); //返回一个派生类型
}
}
class test
{
static void Main()
{
ITest i = new TestClass();
ITest ii = i.ReturnObj();
}
}
virusswb 2008-01-18
  • 打赏
  • 举报
回复
你的这个例子只能说是参数是接口类型,凡是继承该接口的类型就可以作为参数传值
你要确认于实例化
marsShan 2008-01-18
  • 打赏
  • 举报
回复
顶五楼的!
hex_maddog 2008-01-18
  • 打赏
  • 举报
回复
谢谢一楼跟五楼的同学,THANK YOU!
弄清楚了
vrhero 2008-01-18
  • 打赏
  • 举报
回复
IMerge Merge(IMerge others);
-----------------------------
方法返回类型为IMerge,接受一个为类型为IMerge的参数...意思是此方法返回的实例具有接口IMerge,接受的参数必须具有接口IMerge...你从哪里看出实例化接口的?
hex_maddog 2008-01-18
  • 打赏
  • 举报
回复
有一点点弄懂了,接口可以用来定义一个类型,但其中有什么规则吗?
西安风影 2008-01-18
  • 打赏
  • 举报
回复
为什么需要接口
说简单点,就是我不管你将来类是什么名称,只要你继承这个接口
我就可以用IMerge来定义你的类型。
hunan0313 2008-01-18
  • 打赏
  • 举报
回复
这只是定义了一个接口,哪里有把他实例化,里面有2个方法一个是Length的get方法,返回类型为int,一个是Merge,返回类型
IMerge,带了一个参数IMerge类型的others,这都是实现类必需实现的方法.
这里是接口的定义,没有实例化的过程
stning 2008-01-18
  • 打赏
  • 举报
回复
接口不能可以实例化,这个是为派生类做准备的
viena 2008-01-18
  • 打赏
  • 举报
回复
类型为接口,不等于接口可以实例化!

111,117

社区成员

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

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

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