解决方案 »
- 在winform里面判断一张表是否存在,不存在创建表,sql语句怎么写
- 我遇到一条英文的编程题,但是小弟英文不怎么好,求大哥们帮翻译一下,小弟不胜感激。利用网上的翻译工具...不知所云...
- 要命的线程问题
- 用vs自带的aboutbox做一个软件的“关于”对话框,求资料、求指导、求源码
- 局域网内连接数据库 在线
- 《接口还是继承?》的后续问题,笔类例进一步扩充
- 如何使RichTextBox中的右键菜单可用?
- 请教一个小问题
- ★★★★关于PermissionSet类及硬盘权限的问题。(头大之中......)
- 在.NET中如何获取网卡的physical address
- 怎么列出一个对象中所有的属性和属性的值?
- 批量删除数据库表中数据
{
....
}
看样子好象对,偶也概念不强了.
public enum MyEnum{Zero, One, Two, Three };public void foo<T>(T value) where T : int
{
Console.WriteLine("It is {0}", value);
}public void MyMethod()
{
foo<MyEnum>(MyEnum.One);
}
这样会正确显示 It is One. 吗? 怎么感觉这么怪呢?
I tried in both way. Neither works. Anyone know how to work with it? Simpler, better.
public void Operation<T>() where T : struct
{
....
}泛型约束 class 表示引用类型 struct 表示值类型
用struct先,再加个判断
public void Operation<T>() where T : struct
{
if(!typeof(T).IsEnum) throw new ArgumentException("必须是枚举类型");
}
public enum MyEnum { Zero, One, Two, Three };public void MyMethod()
{
foo<MyEnum>(MyEnum.One);
}public void foo<T>(T value)
{
Type enumType = typeof(T); if (enumType.BaseType != typeof(Enum))
throw new ArgumentException("T must be of type System.Enum"); Console.WriteLine((T)Enum.Parse(enumType, value.ToString()));
Console.WriteLine();
}
got it. but Can I use: ?
switch ((T)value)
{
case enumType.0:
....
break;
case enumType.1:
....
break;
....
default:
break;
}
Or similar
{
if (!typeof(T).IsEnum)
{
}
}
http://stackoverflow.com/questions/79126/create-generic-method-constraining-t-to-an-enum