在方法里获取外部信息(再问)

chy2323456 2009-12-16 04:07:30
public interface Interface1
{
void www();
}
public class class1
{
public static Object GetInterface1()
{

return null;

}
}
调用
Interface1 iii = class1.GetInterface1() as Interface1;

问题
我怎么能在
public static Object GetInterface1()
{

return null;

}方法里,取得调用要转化的接口类型Interface1


主要目的,是做个接口工厂,工厂只提供一种方法(当然可以重载)返回需要的接口,而不需要程序员知道,具体实例的那个类,这就知道在调用方法体内部,获取到外部要实现的接口是什么
...全文
135 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
chy2323456 2009-12-21
  • 打赏
  • 举报
回复
还有人吗
chy2323456 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lovely_baby 的回复:]
获取 方法的类型可以通过:
TypeName ??
[/Quote]
Interface1 iii = class1.GetInterface1() as Interface1;
我需要在GetInterface1()方法内部知道 这个返回值是Interface1类型
Lovely_baby 2009-12-17
  • 打赏
  • 举报
回复
获取 方法的类型可以通过:
TypeName ??
yanm7788 2009-12-17
  • 打赏
  • 举报
回复
mark
chengcheng1253 2009-12-17
  • 打赏
  • 举报
回复
up
z109214114 2009-12-17
  • 打赏
  • 举报
回复
up
walkghost 2009-12-17
  • 打赏
  • 举报
回复
学习。
chy2323456 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ojlovecd 的回复:]
做成泛型方法:
C# codepublicclass class1
{publicstatic T GetInterface1<T>()
{returnnull;

}
}
[/Quote]
Interface1 iii = class1.GetInterface1<Interface1>();
这样确实可以接受,谢谢迟些给分
还有那位高手可以告诉我,在方法内部是否能取到方法外部所返回值的Type,这样解决是否可行
chy2323456 2009-12-17
  • 打赏
  • 举报
回复
我姓区不姓区 2009-12-16
  • 打赏
  • 举报
回复
做成泛型方法:

public class class1
{
public static T GetInterface1<T>()
{

return null;

}
}

chy2323456 2009-12-16
  • 打赏
  • 举报
回复
抬起来
zhulong1111 2009-12-16
  • 打赏
  • 举报
回复
重载,重写,继承
chy2323456 2009-12-16
  • 打赏
  • 举报
回复
公用接口继承其它接口?这样确实可以,不过还是增加了代码量[Quote=引用 4 楼 xiazhijiang520 的回复:]
写一个公用的实体接口(可以重载),通过公用接口调用其它接口;
好比公用Model实体,调用其它Model层;
[/Quote]
泡面之夏 2009-12-16
  • 打赏
  • 举报
回复
写一个公用的实体接口(可以重载),通过公用接口调用其它接口;
好比公用Model实体,调用其它Model层;
chy2323456 2009-12-16
  • 打赏
  • 举报
回复
目前这样做可以Interface1 iii = GetInterface1(typeof(Interface1)) as Interface1;
但是typeof(Interface1)这个参数我想去掉
chy2323456 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bancxc 的回复:]
C# codepublicinterface Interface1
{void www();
}publicclass class2:Interface1
{void www();{}
}publicclass class1
{public Interface1 GetInterface1()
{

Interface1 i=new class2()return i;
?-
[/Quote]

如果我再有个 Interface2怎么办我就是想GetInterface1() 方法返回所有接口
bancxc 2009-12-16
  • 打赏
  • 举报
回复
public interface Interface1 
{
void www();
}
public class class2:Interface1
{
void www();{}
}

public class class1
{
public Interface1 GetInterface1()
{

Interface1 i = new class2()
return i;

}
}
调用
Interface1 iii = new class1().GetInterface1()

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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