я пример приложения, C# консоль для отображения ошибки я испытываю:метод перечисления вызывается, когда объект должен быть
class Program
{
public enum Days { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };
static void Main(string[] args)
{
AddWhere("a", DateTime.Now);
AddWhere("a", 0);
AddWhere("a", 2);
AddWhere("a", 3);
AddWhere("a", "4");
AddWhere("a", Days.Sun);
AddWhere("a", Days.Fri);
AddWhere("a", 1);
AddWhere("a", (int)Days.Sat);
Console.Read();
}
public static void AddWhere(string columnName, Days cd)
{
Console.WriteLine("enum fired");
}
public static void AddWhere(string columnName, object Val)
{
Console.WriteLine("object fired");
}
}
значение выходной я получаю это:
object fired
enum fired
object fired
object fired
object fired
enum fired
enum fired
object fired
object fired
Почему метод перечисления огонь при прохождении 0?
Чтобы получить ответ на то, что сказал JaredPar, перечисления не являются ограничителями, они просто спецификаторы. Вы можете передать любой действительный int в перечисление, он просто не будет иметь соответствующий идентификатор, чтобы идти вместе с ним. –