利用反射获得类的public static/const成员的值

首先,我们定义一个类:


class CDynamic{
#if truepublic const string TableName = "p_battlerecord";	// OK//public static string TableName = "p_battlerecord";	// OK
#elsepublic static string TableName						// 用属性不行{get { return "hello"; }}
#endifpublic string Name { get; set; }public int Add(int a, int b){return a + b;}}


写一个测试函数:

		/// <summary>/// 获取类的public static/const成员的值/// </summary>/// <typeparam name="T"></typeparam>public void TestGetValue<T>(){var tableName = typeof(T).GetField("TableName").GetValue(null);Console.WriteLine(tableName);}

调用测试接口:

		public void test1(){
#if falsevar d = new CDynamic();								// 简化演示, 未使用反射var add = typeof(CDynamic).GetMethod("Add");var ret = add.Invoke(d, new object[] { 1, 3 });
#elsedynamic d = new CDynamic();							// 使用dynamic动态绑定var ret = d.Add(1, 3);//d.Hello();											// 编译通过, 运行将出错(未包含Hello()的定义)TestGetValue<CDynamic>();
#endif//Console.WriteLine("sum = {0}, {1}", ret, s);}


完成!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue项目部署测试和生产环境地址

场景&#xff1a;直接本地dev开发项目代码&#xff0c;然后打包提交&#xff0c;将打包后的index.html和static等静态文件&#xff0c;复制一份到本地桌面。 git切换到test分支下&#xff0c;将刚才打包的index.html和static等静态文件直接丢进test的某个文件例如abc文件夹下&a…

每日英语:Go Ahead, Hit the Snooze Button

Turns out a good nights rest is good for business. snooze&#xff1a;小睡&#xff0c;打盹One-third of American workers arent sleeping enough to function at peak levels, and that chronic exhaustion is costing billions of dollars in lost productivity, accord…

wireshark如何抓取本机包

From: http://www.cnblogs.com/lvdongjie/p/6110183.html 在进行通信开发的过程中&#xff0c;我们往往会把本机既作为客户端又作为服务器端来调试代码&#xff0c;使得本机自己和自己通信。但是wireshark此时是无法抓取到数据包的&#xff0c;需要通过简单的设置才可以。 具体…

vue页面使用html2canvas截图;vue使用canvas画布签名

vue页面使用html2canvas截图 vue使用vue-esign画布签名

如何用css将超出部分变成...

通过css控制超出部分变成...比通过javascript截取字符串效率要高得多而且也更简单 不多说&#xff0c;看例子 <html> <body> <style> .ellipsis span { white-space:nowrap; text-overflow:ellipsis; /* for internet explorer */ overflow:hidden;…

【Android】Android开发启动app弹出一张广告图片,Dialog可以查看大图,查看某个图片功能...

作者&#xff1a;程序员小冰&#xff0c;GitHub主页&#xff1a;https://github.com/QQ986945193 新浪微博&#xff1a;http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现的效果图&#xff1a; 首先说一下&#xff0c;这里利用的是一个dialog&#xff0c;然…

el-dialog弹框中img图片保持比例最大化;图片保持比例最大化

图片保持比例最大化 <el-dialog :visible.sync"dialogVisible" center class"look_img_dia"><img width"100%" :src"dialogImageUrl" alt"" /></el-dialog>.look_img_dia {/deep/.el-dialog {margin-top…

Wireshark技巧-过滤规则和显示规则

From: http://www.cnblogs.com/icez/p/3973873.html Wireshark是一个强大的网络协议分析软件&#xff0c;最重要的它是免费软件。 过滤规则 只抓取符合条件的包&#xff0c;在Wireshark通过winpacp抓包时可以过滤掉不符合条件的包&#xff0c;提高我们的分析效率。 如果要填写过…

正则表达式及扩展

正则表达式&#xff1a; 正则表达式是对字符串操作的一种逻辑公式&#xff0c;就是用事先定义好的一些特定字符、及这些特定字符的组合&#xff0c;组成一个“规则字符串”&#xff0c;这个“规则字符串”用来表达对字符串的一种过滤逻辑。给定一个正则表达式和另一个字符串&am…

easyUI 展开DataGrid里面的行显示详细信息

http://blog.csdn.net/yanghongchang_/article/details/7854156原著 datagrid 可以改变它的view(视图)去显示不同的效果.使用详细视图,datagrid可以显示展开按钮("" 或者 "-")在数据行的左边,用户可以展开一个行去显示一个附加的详细信息. 查看 Demo 步骤 …

vue父组件调用子组件的方法;vue子组件使用父组件的方法

vue父组件调用子组件的方法 <div><son ref"son"></son></div>// 直接在父组件页面的某个点击事件内调用此方法即可 sonMethod是子组件的方法 // 注意当前父组件内的子组件需要设置ref this.$nextTick(() > {this.$refs[son].sonMethod(参…

理解OAuth 2.0(转)

From: http://www.mamicode.com/info-detail-1610036.html 理解OAuth 2.0 作者&#xff1a; 阮一峰 日期&#xff1a; 2014年5月12日 OAuth是一个关于授权&#xff08;authorization&#xff09;的开放网络标准&#xff0c;在全世界得到广泛应用&#xff0c;目前的版本是2.0版。…

Havel-Hakimi定理

转自http://sbp810050504.blog.51cto.com/2799422/883904 我一直想写一些关于图论学习的收获。一直由于这样或者那样的原因都没有开始。无论如何&#xff0c;现在开始吧&#xff01;那么到底什么是图呢&#xff1f;我们这里说的图当然不是像照片一样的东东。最权威的定义&a…

Axure RP 8.0正式版下载地址 安装和汉化说明

1.Axure RP和中文包包下载地址 官网地址&#xff1a;http://www.axure.com.cn/3510/ 2.下载完成后安装 3.破解 axure8.0注册码激活码&#xff1a;&#xff08;亲测可用&#xff09;用户名&#xff1a;aaa注册码&#xff1a;2GQrt5XHYY7SBK/4b22Gm4Dh8alaR0/0k3gEN5h7FkVPIn8oG3…

el-table记录删除后的表格滚动条位置

场景&#xff1a;一般el-table的删除操作&#xff0c;在删除数据后前端会重新调接口获取数据&#xff0c;此时列表更新会自动回到el-table顶部。但是我们想要让列表刷新后回到当时的滚动条位置那里&#xff0c;那么就需要记住删除时候的位置。 <el-table ref"eltable&q…

curry化函数

Curry化是一个转换过程&#xff0c;即我们执行函数的转换过程. function fn(x,y){ if(typeof y"undefined"){ return function(y){ return xy; } } return xy; } console.log(fn(10,5)) console.log(fn(1…

wcf返回datatable必须给tablename赋值

From: http://www.cnblogs.com/hxw/archive/2010/07/10/1774841.html 最近在学习WCF,返回datatable的时候老是出现“An error occurred while receiving the HTTP response to http://localhost:9999/calculatorservice. This could be due to the service endpoint binding no…

Vue 兄弟组件之间传值 Bus方法

本文针对两个无关联的组件&#xff0c;A组件触发B组件的方法并传值 注意&#xff1a;A、B是兄弟组件&#xff0c;不是父子组件。 1、在vue项目中新建一个js文件&#xff08;文件名&#xff1a;bus.js&#xff09; // 仅针对两个无关联的兄弟组件使用 import Vue from vue expor…

mysql_load

将文本内容导入mysql数据库中导入语句加入字符集&#xff0c;否则乱码 character set gbk;因为name列加了唯一索列&#xff0c;加这个是为避免重复数据插入报错 ignore into table把相同的先删除掉 replace into table[linux] 这里关键load data infile /tmp/t0.txt ignore int…

统一社会信用代码 正则验证

统一社会信用代码C#正则验证 [1-9A-GY]{1}[1239]{1}[1-5]{1}[0-9]{5}[0-9A-Z]{10} 转载于:https://www.cnblogs.com/Qos8/p/5889573.html