感觉Enum.Format第一个参数是多余的? 不能被自动推导出来吗?该怎么解决
感觉Enum.Format第一个参数是多余的? 不能被自动推导出来吗?
感觉Enum.Format第一个参数是多余的: 因为第二个参数是指定了Enum类型,编译器可以知道day2的类型是Days对吧,那为什么Enum.Format不能从它推导出第一个参数就是typeof(Days)呢,还需要我显示的指定一遍?
感觉非常重复和多余。我的理解有误吗
------解决思路----------------------
[ComVisibleAttribute(true)]
public static string Format(
Type enumType,
Object value,
string format
)
参数
enumType
类型:System.Type
要转换的值的枚举类型。
value
类型:System.Object
要转换的值。
format
类型:System.String
要使用的输出格式。
定义的 value 类型是 object 不能推导出 类型
你知道类型 是因为value是你放进去的
------解决思路----------------------
Format的第二个参数不一定是枚举的具体值,也可以是个整数(枚举的本质其实就是数值)
比如
Console.WriteLine(Enum.Format(typeof(Days), 1, "F"));
你执行看看返回是什么。如果第一个参数不给typeof(Days),谁知道你是要获取哪个enum的值为1的枚举对象的名字啊。
enum Days
{
day1,
day2,
day3
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Enum.Format(typeof(Days), Days.day2, "D"));
}
}
感觉Enum.Format第一个参数是多余的: 因为第二个参数是指定了Enum类型,编译器可以知道day2的类型是Days对吧,那为什么Enum.Format不能从它推导出第一个参数就是typeof(Days)呢,还需要我显示的指定一遍?
感觉非常重复和多余。我的理解有误吗
------解决思路----------------------
[ComVisibleAttribute(true)]
public static string Format(
Type enumType,
Object value,
string format
)
参数
enumType
类型:System.Type
要转换的值的枚举类型。
value
类型:System.Object
要转换的值。
format
类型:System.String
要使用的输出格式。
定义的 value 类型是 object 不能推导出 类型
你知道类型 是因为value是你放进去的
------解决思路----------------------
Format的第二个参数不一定是枚举的具体值,也可以是个整数(枚举的本质其实就是数值)
比如
Console.WriteLine(Enum.Format(typeof(Days), 1, "F"));
你执行看看返回是什么。如果第一个参数不给typeof(Days),谁知道你是要获取哪个enum的值为1的枚举对象的名字啊。