c#如何动态传入枚举?

想把FileUnit类换成动态传入, 任意枚举都可以套用此方法

public static void Init_Combox(ComboBox cbx)
{
Array arrs = System.Enum.GetValues(typeof(FileUnit)); // 获取枚举的所有值
DataTable dt = new DataTable();
dt.Columns.Add("String", Type.GetType("System.String"));
dt.Columns.Add("Value", typeof(int));
foreach (var arr in arrs)
{
string strText = EnumDescription.GetEnumDesc((FileUnit)arr);
DataRow aRow = dt.NewRow();
aRow[0] = strText;
aRow[1] = (int)arr;
dt.Rows.Add(aRow);
}

cbx.DataSource = dt;
cbx.DisplayMember = "String";
cbx.ValueMember = "Value";
}

第1个回答  2020-12-20
试试泛型喽,FileUnit转成T试试
第2个回答  2020-12-19
您好,对于你的遇到的问题,我很高兴能为你提供帮助,我之前也遇到过哟,以下是我的个人看法,希望能帮助到你,若有错误,还望见谅!。去百度文库,查看完整内容>
内容来自用户:qwhh1
5.|【问题描述】|输入一个以回车结束的字符串(少于80 个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串。|原字母 对应字母| A → Z| B → Y| C → X| D → W| …| X → C| Y → B| Z → A|【输入形式】|输入一个以回车结束的字符串|【输入输出样例1】(下划线部分表示输入)|Input a string: A flag of USA|After replaced:Z flag of FHZ|【样例说明】|输入提示符后要加一个空格。例如“Input n: ”,其中“:”后要加一个且只能一个空格。|英文字母区分大小写。必须严格按样例输入输出。|
数组、字符串---7.3.5 编程题《滤去所有的非十六进制字符,并输出其十进制数》|

6.|【问题描述】| (少于80 个字符),滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出。|【输入形式】|输入一个以回车结束的字符串|【输入输出样例1】(下划线部分表示输入)|Input a string: 10|Hex=16|【样例说明】|输入提示符后要加一个空格。例如“Input n: ”,其中“:”后要加一个且只能一个空格。|英文字母区分大小写。必须严格按样例输入输出。| |
| |后一道编程题>>>|

|当前编程题:第八章作业指针与字符串---8.1.3 编程题《用选择法对数组a中的元素升序排列》|

if(s[i]t[j]='\0'非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!

c#如何动态传入枚举?
试试泛型喽,FileUnit转成T试试

C# 中的“智能枚举”:如何在枚举中增加行为
我们可以通过将变量类型设置为`Weekday`并为其分配一个枚举值来使用枚举。例如,将`today`变量设置为`Tuesday`,然后使用`ToString()`方法将其转换为字符串,以输出当前的星期二:csharp Weekday today = Weekday.Tuesday;Console.WriteLine(today.ToString());要计算并输出明天和昨天的日子,我们首先将...

C#,​关于“此枚举数绑定到的列表已被修改,仅在列表没有更改时才能...
按编程规范而言,你在 foreach 时不应该去修改被 foreach 的集合,这一点 MSDN 上写的很清楚,至于 ListView 不报错我看不用去纠结他了(本身就是错误的方式,纠结没有意义),改掉你自己的不良习惯。遇到此种情形,建议用以下方式写:while(clb_Book.CheckedItems.Count > 0){ clb_Book.Items.Rem...

C#动态调用MFC编写的dll无法获取引用传递的值!动态调用是使用kernel32...
第一,C#的命名规范 方法参数变量和方法内部的临时变量,是小骆驼命名法;枚举是帕斯卡命名法,不要用中间 "下划线" 的匈牙利命名法 不然懂的人都难得看你代码 第二,你提问的问题,是调IL的,IL你又懂多少,你调用那个,你还不如调用C#编译器对象来执行,拿到返回的Assembly对象来实现下一步操作 第三...

C#,​关于“此枚举数绑定到的列表已被修改,仅在列表没有更改时才能...
在处理枚举数与列表绑定时,常见的问题是在遍历列表(如使用 foreach 循环)时尝试修改它,这会导致运行时错误。错误信息“此枚举数绑定到的列表已被修改,仅在列表没有更改时才能使用枚举数”通常出现在尝试在遍历过程中修改列表时。为了解决这个问题,应避免在遍历过程中直接修改集合。以下是几种改进的...

C#中的枚举怎么使用
(2)枚举成员枚举成员是该枚举类型的命名常数。任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。 示例:public enum TimeofDay:uint{Morning=-3,Afternoon=-2,Evening=-1}产生编译时错误,...

c# 如何把一个范围内的数字赋给枚举成员 例如有1~100,里面中的每一个...
枚举可以并且只能在创建时指定值:enum Human { Head = 0,Body = 1,Hand = 2,Leg = 3 ...} 枚举的值指定后不可变

C#中,定义了一个枚举,怎么用for循环来遍历枚举中的每个值?
Tuesday,Sunday } public static void Main(string[] args){ Type week=typeof(days);Array Arrays = Enum.GetValues(week);for(int i=0;i<Arrays.LongLength;i++)Console.WriteLine(Arrays.GetValue(i));Console.Write("Press any key to continue . . . ");Console.ReadKey(true);} } ...

C#中的枚举类型如何传递参数呢?
应该可以,只是个枚举类型的参数,没什么特别的地方。补充:改成 Command Text 没有了“点”是不可以的,我也没见过Command.Text 应该是CommandType.Text吧?A(CommandType txtType){ B(txtType);} B(CommandType txtType){ \/\/...cmd = new SqlCommand();cmd.CommandText = "select * ...";cmd...

c#能不能定义string类型的枚举变量
不能,枚举元素只能是除char之外的整形数据,比如象byte、sbyte、short、ushort之类都是可以的。

相似回答