KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Fun with enums in C#. Take one generic list that is created to store some Enum that you had defined previously and add few items in it. Iterate with foreach or GetEnumerator<T>() but specify some other enum then the original and see what happens. I was expecting InvalidCastException or something like that but it perfectly works :). For the illustration let's take a simple console application and create two enums there: Cars and Animals: public enum Cars { Honda = 0, Toyota = 1, Chevrolet = 2 } public enum Animals { Dog = 0, Cat = 1, Tiger = 2 } And do this in main method: public static void Main() { List<Cars> cars = new List<Cars>(); List<Animals> animals = new List<Animals>(); cars.Add(Cars.Chevrolet); cars.Add(Cars.Honda); cars.Add(Cars.Toyota); foreach (Animals isItACar in cars) { Console.WriteLine(isItACar.ToString()); } Console.ReadLine(); } It will print this in console: Tiger Dog Cat Why is this happening? My first guess was that enum is not actually a Type by himself it's just and int but that's not true: If we write: Console.WriteLine(Animals.Tiger.GetType().FullName); We will get his fully qualified name printed! So why this?
Tags (comma-separated)
Save Edits
Cancel