C#定义只能处理枚举类型的泛型类型

 1 internal sealed class GenericTypeThatRequireAnEnum<T>
 2 {
 3     public static int age = 12;   //该 static 字段在不同的封闭类型之间是独立不共享的
 4 
 5     //静态构造器针对每个封闭类型都会执行一次,泛型类型定义静态构造器的目的就是为了保证传递的类型实参满足特定的条件
 6     //静态类型构造器只能是私有的,不能添加访问权限修饰符,并且是由 CLR 自动调用的
 7     static GenericTypeThatRequireAnEnum()
 8     {
 9         Console.WriteLine("T type is : {0}", typeof(T).Name);
10         if (!typeof(T).IsEnum)
11         {
12             throw new ArgumentException("T must be an enumerated type");
13         }
14     }

使用方式:

1 enum eEnum1 { }
2 
3 enum eEnum2 { }
4 
5 GenericTypeThatRequireAnEnum<eEnum1> tmp1 = new GenericTypeThatRequireAnEnum<eEnum1>();
6 GenericTypeThatRequireAnEnum<eEnum1>.age = 153;
7 GenericTypeThatRequireAnEnum<eEnum2> tmp2 = new GenericTypeThatRequireAnEnum<eEnum2>();
8 Console.WriteLine(GenericTypeThatRequireAnEnum<eEnum2>.age);
9 //GenericTypeThatRequireAnEnum<int> tmp3 = new GenericTypeThatRequireAnEnum<int>();        //这句会报异常,因为类型实参不是每句类型

运行结果:

转载于:https://www.cnblogs.com/luguoshuai/p/10293421.html

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

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

相关文章

电脑注册表被停用

“开始→运行”&#xff0c;输入“Gpedit&#xff0e;msc”后回车&#xff0c;打开“组策略”。然后依次展开“用户配置→管理模板→系统”&#xff0c;双击右侧窗口中的“阻止访问注册表编辑工具”&#xff0c;在弹出的窗口中选择“已禁用”&#xff0c;“确定”后再退出“组策…

Spring应用程序与JNDI连接池的集成测试

我们都知道&#xff0c;无论何时连接到数据库&#xff0c;都需要使用连接池。 所有使用JDBC 4类的现代驱动程序都支持它。 在本文中&#xff0c;我们将概述Spring应用程序中的连接池&#xff0c;以及如何在非JEE环境&#xff08;例如测试&#xff09;中处理相同的上下文。 在S…

jsp 上传转码_最完整的处理jsp处理乱码问题步骤,不需要手工转码

以编码格式为UTF-8为例1&#xff0c;jsp页面文件编码格式&#xff0c;在eclipse右键-》properties-》resource-》text file encode修改该UTF-82&#xff0c;jsp页面上的跟上面一样&#xff0c;为文件存储格式&#xff0c;按此格式存储文件&#xff0c;并编译里面汉字3&#xff…

CSS未知宽高元素水平垂直居中

方法一 &#xff1a;table、cell-table 思路&#xff1a;显示设置父元素为&#xff1a;table&#xff0c;子元素为&#xff1a;cell-table&#xff0c;这样就可以使用vertical-align: center&#xff0c;实现水平居中优点&#xff1a;父元素&#xff08;parent&#xff09;可以…

在java web工程中jsp页面中使用kindeditor

在这之前我们用Notepad写过kindeditor 在Java web工程里也差不多 首先我们复制之前的thml代码粘贴到工程里 然后把样式也复制进去 然后就可以运行了 转载于:https://www.cnblogs.com/q2546/p/11066539.html

数据分析方法论

把零散的报表整成数据监控体系 把每次拍脑袋的评估整成数据考核体系 在推荐、广告等算法上有所突破&#xff0c;而不是自己瞎捣鼓个没人看的聚类分析 在推送响应等有业绩的地方产出产品&#xff0c;而不是每次用时间序列法预测个销量走势再被业务喷回来。 分析自己的现状&am…

链接服务器

使用sql-server进行分布式查询&#xff08;链接服务器&#xff09; 可以使用sql-server企业管理器进行建立&#xff0c;注意其中的rpc及rpc out两项&#xff0c;也可以使用sql语句来完成定义&#xff0c;主要涉及到三个存储过程sp_addlinkedserver&#xff0c;sp_serveroption和…

mysql表级别的操作_MySql 库/表级操作 及 数据类型 - 纪宇

数据库分类关系型数据库(SQL)&#xff1a;存储方式固定&#xff0c;安全非关系型数据库(NoSQL)&#xff1a;存储方式比较灵活&#xff0c;存储数据的效率比较高&#xff0c;不太安全MySQL是一种关系型数据库管理系统(采用关系模型来组织管理数据的数据库系统)注意事项大小写&am…

具有Java 8支持的Spring Framework 4.0.3和Spring Data Redis 1.2.1

Spring Framework 4.0.3 正如Spring社区宣布的那样&#xff0c;Spring Framework 4.0.3现在可用。 它是上周Java 8发布后框架的第一个版本&#xff0c;因此它是使用OpenJDK 8 GA构建的&#xff0c;并包含最新的ASM 5.0.1。 Spring Framework 4.0.3为WebSockets带来了重要的增强…

Markdown的使用笔记

Markdown的使用笔记 Markdown在我看是一种使用几种标记符号就可以完成清晰排版的一种标记语言&#xff0c;是写笔记文章的一大利器&#xff0c;使用简单、方便&#xff0c;上手快&#xff0c;而且可以很好的兼容html&#xff0c;即html中的标签在markdown中也同样试用。这边文章…

多项式孤儿桶

巨佬制作人们大家好&#xff0c;我是练习多项式两周半的个人练习生lgl。这里总结一下多项式基本操作。 1.多项式加、减、输出 不说了。 时间复杂度$O(n)$。 2.多项式取模 已知多项式$F(x)$&#xff0c;求它对$x^n$取模。 人话&#xff1a;把$n$次及以上的系数清零。 时间复杂度…

焦头烂额

好久没有蹭公司的饭了&#xff0c;今天堕落了一把&#xff0c;和师弟师妹们一起蹭饭&#xff0c;唉&#xff0c;事情有点多&#xff0c;不知道干哪个好&#xff0c;后天回家&#xff0c;感觉GF好像不大愿意&#xff0c;虽然表面没说。。。 转载于:https://www.cnblogs.com/leol…

python亲密度_Python OpenCV 图像2D直方图,取经之旅第 25 天

Python OpenCV 365 天学习计划&#xff0c;与橡皮擦一起进入图像领域吧。基础知识铺垫在之前的博客中&#xff0c;我们获取图像直方图的方式都是获取一维直方图&#xff0c;简单说就是只获取一个通道的特征&#xff0c;例如灰度&#xff0c;B 通道&#xff0c;R 通道。今天要学…

Spring MVC,Thymeleaf,Spring Security应用程序中的CSRF保护

跨站点请求伪造&#xff08;CSRF&#xff09;是一种攻击&#xff0c;它迫使最终用户在当前已通过身份验证的Web应用程序上执行不需要的操作。 如果您使用Spring Security 3.2及更高版本&#xff0c;在Spring MVC / Thymeleaf应用程序中防止CSRF攻击相当容易。 怎么测试&#x…

清除浮动的方式

1、父级div定义伪类&#xff1a;after和zoom <style type"text/css"> .div1{background:#000080;border:1px solid red;}.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}.left{float:left;width:20%;height:200px;background:#D…

centos7 samba配置完成后不管怎么登陆都会显示密码错误的解决方案

添加系统用户 useradd samba 添加samba用户 smbpasswd -a samba 激活samba用户 smbpasswd -e samba 1.winr运行secpol.msc打开本地安全策略 2.安全策略->本地策略->安全选项 3.右侧找到 网络安全:LAN管理器身份验证级别 打开 &#xff0c;选择 仅发送NTLMv2响应&#xf…

rabbitmq简单运用

<?php /*** 生产者*/$connection new AMQPConnection([host > 192.168.23.130,port > 5672,login > rabuser,password > 123456 ]);$connection->connect() or die(连接失败);try{$exchange_name trades;$route_key /trade;//投递消息到中间件$channel …

JPDL3.1规范手册

JPDL3.1规范手册jBPM业务程序定义语言&#xff08;jBPM Process Definition Language (JPDL)&#xff09;Blog: http://blog.csdn.net/shendl/2006-10-13前言&#xff1a;这是jBPM3.1指南第16章的翻译。但不仅仅是简单的翻译而已。其中加入了我对jBPM的JPDL规范和技术的理解。我…

py函数两个返回值_Python 函数为什么会默认返回 None?

Python 有一项默认的做法&#xff0c;很多编程语言都没有——它的所有函数都会有一个返回值&#xff0c;不管你有没有写 return 语句。本文出自“Python为什么”系列&#xff0c;在正式开始之前&#xff0c;我们就用之前讨论过的 pass语句和 …对象 作为例子&#xff0c;看看 P…

Apache CXF 3.0:JAX-RS 2.0和Bean验证1.1最终一起

即将发布的出色的Apache CXF框架3.0版 &#xff08;当前处于里程碑2阶段&#xff09;带来了许多有趣且有用的功能&#xff0c;越来越接近提供完整的JAX-RS 2.0支持。 Bean Validation 1.1的支持是我们中许多人期盼已久的功能之一&#xff1a;简单而简洁的模型可为您的REST服务层…