定一个枚举如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text; namespace YX.Model.QianHai
{
public enum IdType
{
[Value("")]
身份证 = ,
[Value("")]
户口簿 = ,
[Value("")]
护照 = ,
[Value("")]
军官证 = ,
[Value("")]
士兵证 = ,
[Value("")]
港澳居民来往内地通行证 = ,
[Value("")]
台湾同胞来往内地通行证 = ,
[Value("")]
临时身份证 = ,
[Value("")]
外国人居留证 = ,
[Value("")]
警官证 = ,
[Value("X")]
其他证件 =
} public static class IdTypeExtentions
{
public static string GetValue(this IdType idType)
{
return ValueAttribute.GetCustomerValue(idType);
}
}
}

内涵一个该枚举类型的扩展方法。

由于最有一个枚举值是 引用类型,事实 枚举的值不支持 引用类型,只能获取到 值类型,

所以才有以下 自定义属性。

定义一个自定义属性:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text; namespace YX.Model
{
public class ValueAttribute : Attribute
{
public ValueAttribute(string value)
{
Value = value;
}
public string Value { get; private set; } public static string GetCustomerValue(object code)
{
var ty = code.GetType();
var name = Enum.GetName(ty, code);
FieldInfo field = ty.GetField(name);
ValueAttribute attr = Attribute.GetCustomAttribute(field, typeof(ValueAttribute)) as ValueAttribute;
return attr.Value;
}
}
}

C#基础-技术还债2-枚举的更多相关文章

  1. C#基础-技术还债3-枚举【pending】

    /// <summary> /// 声明三方查询类型可以关联的查询对象类型 /// </summary> [AttributeUsage(AttributeTargets.Fi ...

  2. 3.Python编程语言基础技术框架

    3.Python编程语言基础技术框架 3.1查看数据项数据类型 type(name) 3.2查看数据项数据id id(name) 3.3对象引用 备注Python将所有数据存为内存对象 Python中 ...

  3. 网络统计学与web前端开发基础技术

    网络统计学与web前端开发基础技术 学习web前端开发基础技术(网页设计)需要了解:HTML.CSS.JavaScript三种语言.下面我们就来了解一下这三门技术在网页设计中的用途: HTML是网页内 ...

  4. Docker基础技术:Linux Namespace(下)

    在 Docker基础技术:Linux Namespace(上篇)中我们了解了,UTD.IPC.PID.Mount 四个namespace,我们模仿Docker做了一个相当相当山寨的镜像.在这一篇中,主 ...

  5. Docker 基础技术:Linux Namespace(下)

    导读 在Docker基础技术:Linux Namespace(上篇)中我们了解了,UTD.IPC.PID.Mount 四个namespace,我们模仿Docker做了一个相当相当山寨的镜像.在这一篇中 ...

  6. Docker 基础技术之 Linux cgroups 详解

    PS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 推荐大家到公众号阅读,那里阅读体验更好,也沉淀了很多篇干货. 前面两篇 ...

  7. Web前端-Ajax基础技术(下)

    Web前端-Ajax基础技术(下) 你要明白ajax是什么,怎么使用? ajax,web程序是将信息放入公共的服务器,让所有网络用户可以通过浏览器进行访问. 浏览器发送请求,获取服务器的数据: 地址栏 ...

  8. Web前端-Ajax基础技术(上)

    Web前端-Ajax基础技术(上) ajax是浏览器提供一套的api,用于向服务器发出请求,接受服务端返回的响应,通过javascript调用,实现通过代码控制请求与响应,实现网络编程. ajax发送 ...

  9. eMMC基础技术3:eMMC总线token

    1.前言 本文主要介绍eMMC 总线协议相关的内容,主要包括: (1)command token format (2)response token format (3)data packet form ...

随机推荐

  1. 剑指Offer面试题:23.二叉树中和为某一值的路径

    一.题目:二叉树中和为某一值的路径 题目:输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.例如输入下图中二叉树和整数2 ...

  2. 细嗅Promise

    读完这篇文章,预计会消耗你 40 分钟的时间. Ajax 出现的时候,刮来了一阵异步之风,现在 Nodejs 火爆,又一阵异步狂风刮了过来.需求是越来越苛刻,用户对性能的要求也是越来越高,随之而来的是 ...

  3. .Net组件程序设计之对象生命周期

    .Net组件程序设计之对象生命周期 .NET 垃圾回收 IDisposable() Using语句 .NET 垃圾回收 是CLR管理着垃圾回收器,垃圾回收器监控着托管堆,而我们使用的对象以及系统启动是 ...

  4. Webstorm 10 for mac osx 注册机,序列号,kegen

    小菜最近get到mac体验机会,早就耳闻mac非常适合做开发,于是迫不及待的安装各种开发工具,不知不觉,轮到前端开发神器webstorm了,看了一下官网的价格,心拔凉拔凉的. 果断搜索注册机,搜到的结 ...

  5. Android开发学习之路-回调机制学习笔记

    不知道是我学Java的时候没有认真听还是怎么的,曾经一直不知道什么是“回调”,它有什么用,百度一大堆,都太复杂看不明白(好吧是我笨),所以想把自己理解的分享给其他看到的人,大家都真正认识一下这个重要的 ...

  6. angular中的compile和link函数

    angular中的compile和link函数 前言 这篇文章,我们将通过一个实例来了解 Angular 的 directives (指令)是如何处理的.Angular 是如何在 HTML 中找到这些 ...

  7. jquery中on/delegate的原理

    jquery中on/delegate的原理 早期版本中叫delegate, 后来有过live函数,再后来统一用on.下面的方法等效: // jQuery 1.3 $(selector).(events ...

  8. Struts框架

    Struts是最早的Java开源框架之一,它是MVC设计模式的一个优秀实现. Struts定义了通用的Controller(控制器),通过配置文件(通常是 Struts -config.xml) Ec ...

  9. 判断手机端用户打开页面时是android还是ios,并将判断结果通过ajax返回给url接口,传递回去

    首先判断页面是android还是ios,然后利用ajax将结果通过接口url返回回去,记录到log日志中,以统计android和ios用户访问该页面的数量(数据统计) <script type= ...

  10. DAC Usage3:Monitor Data-tier Applications

    If you deploy a DAC to a managed instance of the Database Engine, information about the deployed DAC ...