感觉Enum.Format第一个参数是多余的? 不能被自动推导出来吗?该怎么解决

感觉Enum.Format第一个参数是多余的? 不能被自动推导出来吗?

    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的枚举对象的名字啊。