C#如何将字符串转成类类型,并将一个存在的对象强制转成转换过来的类类型

lynehylo 2014-07-10 03:41:24
C#如何将字符串转成类类型,并将一个存在的对象强制转成转换过来的类类型
如:
string tableName = "tbl_Teacher";
object obj = StringToObject.GetTableCol(tableName);//自定义类获取到非空对象
如何将 obj 强制转成tbl_Teacher类型
...全文
3134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lynehylo 2014-07-10
  • 打赏
  • 举报
回复
引用 4 楼 phommy 的回复:
你标题提了两个问题 1.C#如何将字符串转成类类型 var t = Type.GetType("tbl_Teacher"); t就是你要的。注意用全称,如果有命名空间要带上 2.并将一个存在的对象强制转成转换过来的类类型 dynamic teacher = t.IsInstanceOfType(obj) ? obj : null; teacher就是你要的。之后你可以对teacher调用tbl_Teacher中的方法
如果那个类通过类库引入到项目中的,好像var t = Type.GetType("tbl_Teacher");这样就返回null了
於黾 2014-07-10
  • 打赏
  • 举报
回复
这不是把字符串转成类类型 而是通过类的名称查找类 实际上就是反射...
卧_槽 2014-07-10
  • 打赏
  • 举报
回复
其实就俩字,反射。
phommy 2014-07-10
  • 打赏
  • 举报
回复
引用 5 楼 lynehylo 的回复:
我是有这样的需求,就是将实体类的数据集合保存到XML文件中,StringToObject.GetTableCol(tableName, swhere, orderBy)这个方法返回的是一个数据集合CollectionBase,而必须将这个数据集合转成相应实体类对应的数据集合才能调用到它里面的方法进行操作,这一整个过程中,只是实体类不一样,其他代码都是一样,就像请教大师们,有没有办法实现
如果你的obj是CollectionBase的话,直接 dynamic t=obj[0]; t.xxxx 就可以直接调用具体方法了。 另外用CollectionBase而不是ICollection有点奇怪
lynehylo 2014-07-10
  • 打赏
  • 举报
回复
我是有这样的需求,就是将实体类的数据集合保存到XML文件中,StringToObject.GetTableCol(tableName, swhere, orderBy)这个方法返回的是一个数据集合CollectionBase,而必须将这个数据集合转成相应实体类对应的数据集合才能调用到它里面的方法进行操作,这一整个过程中,只是实体类不一样,其他代码都是一样,就像请教大师们,有没有办法实现
phommy 2014-07-10
  • 打赏
  • 举报
回复
你标题提了两个问题 1.C#如何将字符串转成类类型 var t = Type.GetType("tbl_Teacher"); t就是你要的。注意用全称,如果有命名空间要带上 2.并将一个存在的对象强制转成转换过来的类类型 dynamic teacher = t.IsInstanceOfType(obj) ? obj : null; teacher就是你要的。之后你可以对teacher调用tbl_Teacher中的方法
  • 打赏
  • 举报
回复
在代码中我们写

接口A a = .....;
接口B b=(接口B)a;
这是因为我们知道A和B类型,如果写
B b=a;
则编译器编译不过去,但是我们知道a所引用的对象其实是具有接口B的,只不过编译器无法分析出来,所以我们写强制类型转换。 跟你所谓的那种”转换“根本不是同一个概念。你那种转换,需要自己定义一个转换方法,并且调用这个方法。 记住,那些妄想”万能地“编程的人往往是适得其反做不出来什么的,因为他们实际做的很少。凡是真会抽象的人,都有坚实的基础然后才抽象。
  • 打赏
  • 举报
回复
谁知道你的 StringToObject.GetTableCol 产生的是什么? 你知道为什么要转换么?那是因为不标明类型,编译器就不会让你的程序编译通过。跟你所所谓的”类型转换“根本不是同一个概念。 你所谓的”转换“,只能是你自定义一个对象转换方法。例如通过json的序列化、反序列化。而.net没有这种东西。
bdmh 2014-07-10
  • 打赏
  • 举报
回复
obj as tbl_Teacher

110,529

社区成员

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

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

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