c# 添加中文描述 给enum_C#中的枚举的使用(enum和Enum)

本文介绍了C#中枚举(enum)的声明、取值方式、枚举类型间的转换以及如何使用Description特性为枚举添加中文描述。通过示例展示了如何获取枚举成员的描述,并提供了扩展方法来方便地获取枚举值或类型的Description属性。
摘要由CSDN通过智能技术生成

枚举

一、枚举的声明标准方式:(取值(负数),值的变化方式)

枚举声明方式:

访问修辞符 enum 枚举名:基础类型

{

枚举成员

}

Eg:

Public enum Fruit:long

{

Apple=-1,

Orange=2

Banana

}

枚举取值类型:byte、sbyte、short、ushort、int、uint、long 或 ulong

枚举成员的取值和值得变化:默认值为0,没有手动复制的成员都是在上一个枚举的基础上加1,枚举可以为负数,枚举成员不是变量时常量。

声明一个枚举变量调用枚举的实例方法:Fruit tempFruit;

和其他类型之间不能进行隐试转化。

二、枚举的继承关系:

是值类型,

继承至Enum,ValueType(对C#值类型的思考)

三、Enum的一些类方法和实例方法。()

和其他类型之间的相互转化(Fruit)Enum.Parse(typeof(Fruit),”apple”);

获取所有的值Enum.GetValues(typeof(Fruit))

获取所有的成员的名称Enum.getNames(typeof(Fruit))

获取基础类型(默认为int):Enum.GetUnderlyingType(typeof(Fruit))

四、枚举的Description特性的使用:

作用:添加对应枚举的中文描述()

如何获取:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Linq;

using System.Reflection;

using System.Text;

using System.Threading.Tasks;

namespace ConsolePro

{

[Description("水果")]

public

enum

Fruit

{

[Description("苹果")]

apple

= 1,

[Description("橘子")]

orange = 2,

[Description("香蕉")]

banana = 3

}

class

Program

{

static

void

Main(string[] args)

{

Console.WriteLine(Fruit.apple.GetDescription(false));

Console.WriteLine(Fruit.apple.GetDescription(true));

Console.Read();

}

}

public

static

class

Extension

{

public

static

string

ToConcatString(this string[]

strs, char concatChar)

{

StringBuilder build = new StringBuilder();

foreach

(var

item in strs)

{

build.AppendFormat("{0}{1}",

item, concatChar);

}

return

build.ToString().TrimEnd(concatChar);

}

///

///

获取枚举的Description特性的描述

///

///

name="enumObj">

///

name="isEnumSelf">是否显示的enum类型上的Description还是当前枚举值的

///

public

static

string

GetDescription(this object

enumObj, bool isEnumSelf)

{

string

description = string.Empty;

try

{

if (enumObj != null)

{

Type enumType = enumObj.GetType();

DescriptionAttribute desAttr

= null;

if (isEnumSelf)

{

desAttr = (DescriptionAttribute)Attribute.GetCustomAttribute(enumType,

typeof(DescriptionAttribute));

}

else

{

FieldInfo field = enumType.GetField(Enum.GetName(enumType,

enumObj));

desAttr = (DescriptionAttribute)Attribute.GetCustomAttribute(field,

typeof(DescriptionAttribute));

}

if (desAttr != null)

{

description =

desAttr.Description;

}

}

}

catch

{

return string.Empty;

}

return

description;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值