社区
C#
帖子详情
Q:通过类名和方法名动态返回结果
bsetsail
2010-07-02 06:28:32
如题
类名是字符串
方法名师字符串
返回值是string
就是说现在就知道返回类型,不知道是哪个类和哪个方法,如何动态实现返回值呢?
...全文
112
9
打赏
收藏
Q:通过类名和方法名动态返回结果
如题 类名是字符串 方法名师字符串 返回值是string 就是说现在就知道返回类型,不知道是哪个类和哪个方法,如何动态实现返回值呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lanfengsese
2010-07-03
打赏
举报
回复
应该是反射吧
学习下
qiqishardgel
2010-07-03
打赏
举报
回复
学习,帮顶!
pc_242
2010-07-02
打赏
举报
回复
xuexi.....
兔子-顾问
2010-07-02
打赏
举报
回复
代码贴的在详细都没用
楼主最需要的还是看书或msdn。了解一下反射是什么。才有助于知道自己需要的问题是什么。
heartdevil
2010-07-02
打赏
举报
回复
通过反射来做即可
/// <summary>
/// Use reflect to call function of dll
/// </summary>
/// <param name="strDllPath">The dll path</param>
/// <param name="fullClassName">Full class name of this class</param>
/// <param name="methodName">Method name of class</param>
/// <param name="args">arguments for the feture</param>
/// <returns>return result</returns>
private static object ReflectInvoke(string strDllPath, string fullClassName, string methodName,
params Object[] args)
{
Assembly ass = Assembly.Load(strDllPath);
Type type = ass.GetType(fullClassName);
object obj = ass.CreateInstance(fullClassName);
MethodInfo method = type.GetMethod(methodName);
object returnVal = method.Invoke(obj, args);
return returnVal;
}
shijiaokun
2010-07-02
打赏
举报
回复
3楼已经把反射机制说的很清楚了。按照LZ的思路,必须符合反射或者动态程序域加载的条件
捷哥1999
2010-07-02
打赏
举报
回复
[Quote=引用楼主 bsetsail 的回复:]
如题
类名是字符串
方法名师字符串
返回值是string
就是说现在就知道返回类型,不知道是哪个类和哪个方法,如何动态实现返
回值呢?
[/Quote]
给你一个思路吧
1、你如果要通过反射来获取,那么你要知道dll,知道类名,知道方法名。现在你的情况是,知道dll吗?如果知道dll,就可以加载这个dll,然后获取这里面所有的方法,判断其返回值是否是string,如果这个dll只有一个返回值是string类型的方法,那么好办,如果有n个?你怎么办?总得有个判别机制对吧,计算机最笨也最聪明,只要你能告诉他条件,他就能准确无误的搞定,但是你要是不给出条件,他什么都不能干。
2、如果你连dll都不知道,那么你必须至少要知道dll的位置,例如某个目录,然后循环处理,加载这个目录下的所有dll,去进行第一步那样的匹配工作。
lester19872007
2010-07-02
打赏
举报
回复
这个好型可以通过模板来做,方法应该有很多,比如:数据字典,泛型。
aifengtouxinxin
2010-07-02
打赏
举报
回复
顶 学习
【JavaScript】DOM 操作元素样式和元素
类
名
1. 获取元素的样式 语法:元素.style.样式
名
返回
值:对应元素样式的属性值 注意:当样式
名
中带有连字符,必须使用数组关联语法或驼峰命
名
语法:元素.style.样式
名
= 值 注意:只能给行内样式设置样式语法:
返回
值:对应元素样式的属性值 也可以操作行内元素: 注:不能设置非行内元素的样式。 1. 获取元素的
类
名
语法: **
返回
值:**
返回
该元素的完整
类
名
2. 设置元素的
类
名
语法: 注意:这样写会将原来的
类
名
完全替换 3. 追加元素的
类
名
语法: 注:此
方法
不会覆盖元素原来的
类
名
,而是在其后面追
IntelliJ IDEA的类注释和
方法
注释
效果图如下: 类注释:
方法
注释: idea不会默认帮我们设置,所以需要手动设置。 1:IDEA中在创建类时会自动给添加注释 打开idea,操作 File–>settings–>Editor–>File and Code Templates–>Files (1)N A M E : 设 置 类
名
, 与 下 面 的 {NAME}:设置
类
名
,与下面的NAME:设置
类
名
,与下面的{NAME}一样才能获取到创建的
类
名
(2)TODO:代办事项的标记,一般生成类或
方法
都需要添加描述 (3
QT
动态
创建对象(第一种
方法
)
在我继续一系列的Qt数据序列化文章之前,有一个相对重要的需要提及的话题,那就是:基于
类
名
动态
创建类对象的能力。 假定现在我们要创建一系列的形状,形状是一个抽象类,实际类是存储在一个列表中的各种各样的派生类:矩形、圆等等。在序列化期间,我们可以保存每一项的
类
名
和对象数据,在反序列化(即加载数据)时,我们需要能够创建合适类实例的能力,这就是要用到一个对象工厂的地方。在支持反射的语言中,例如C#、Java,仅需要几行代码就可以从一个跟定的
类
名
字符串获得一个类实例。但是在c++中没有这样的机制。 ...
Qt判断对象的
类
名
的坑
原文链接:https://www.fearlazy.com/index.php/post/310.html 现象: Qt可以通过元对象获取对象的
类
名
。 例如:获取按钮的
类
名
可以使用btn->metaObject()->claassName(); 其中btn是QPushButton类型的指针。 在判断一个对象的
类
名
使用了 == ,如下所示: 结果显示false。 原因: className()函数
返回
值类型是const char*,而“QPushButton”字符
【代码提取】提取一个文件夹里面的所有Java文件的
类
名
函数
名
和变量
名
用C++提取Java文件中的
类
名
,函数
名
和变量
名
。
C#
111,096
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章