谁能给我讲解下这个方法,越详细越好

is_drools 2015-11-27 04:31:02

public static TServiceInterface CreateClient<TServiceInterface>() where TServiceInterface : class
{
return CreateClient<TServiceInterface>(typeof(TServiceInterface).FullName);
}
...全文
123 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南小鱼 2015-11-27
  • 打赏
  • 举报
回复
先度娘几篇C#泛型入门补补吧
threenewbee 2015-11-27
  • 打赏
  • 举报
回复
where class表示t必须是一个引用类型(class定义的类型),不能是简单类型、枚举、结构体。
Poopaye 2015-11-27
  • 打赏
  • 举报
回复
where TServiceInterface : class 如果你只是想问这个是什么意思,就是限制了TServiceInterface必须是一个class 我举个简单的例子 T A<T>() { return null; } 像上面这样写,编辑器会报一个错误 因为这里T可以是任意类型,比如我调用A<int>();,但是int不可以为null,所以就出错了 为了避免这个情况,要加入where T A<T>() where T : class { return null; } 这样就没有问题了,你可以写A<object>();,A<int[]>();,都没问题 并且where也限制了你不能向上面A<int>();这样调用,编辑器会提示你int不是class
小鬼当家家 2015-11-27
  • 打赏
  • 举报
回复
就好比这个函数功能要创建一个对象,但是又不知道创建的对象的类型是什么,所以就先用TServiceInterface代替,调用的时候再指定具体类型。where后面的是限定TServiceInterface这种类型只能是某一个类
is_drools 2015-11-27
  • 打赏
  • 举报
回复
引用 1 楼 u013421223 的回复:
where(泛型类型约束) https://msdn.microsoft.com/zh-cn/library/bb384067.aspx
我看了下,还不是很懂,有没有通俗点的说法?
七步777 2015-11-27
  • 打赏
  • 举报
回复
where(泛型类型约束) https://msdn.microsoft.com/zh-cn/library/bb384067.aspx

110,502

社区成员

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

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

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