עבור לתוכן

שאלה לגבי implicit ב C#

Featured Replies

פורסם

למה הקומפיילר נותן לי את הודעת השגיאה הזאת:

Cannot implicitly convert type 'object' to 'ConsoleApplication4.Color'. An explicit conversion exists (are you missing a cast?)

על שורה זו:

c = Enum.Parse(typeof(Color), input);

התוכנית המלאה:


namespace ConsoleApplication4
{
enum Color { Red, White, Black }
class Program
{
static void Main(string[] args)
{
Color c;

string input = Console.ReadLine();

c = Enum.Parse(typeof(Color), input);


switch (c)
{
case Color.Red:
Console.WriteLine("This is Red Color");
break;
case Color.White:
Console.WriteLine("This is White Color");
break;
case Color.Black:
Console.WriteLine("This is Black Color");
break;

}

Console.ReadLine();
}
}
}

תודה לעוזרים...

פורסם

הוא צריך explicit cast.

ככה:



c = (ConsoleApplication4.Color)Enum.Parse(typeof(Color), input);

Enum.Parse מחזיר אובייקט כללי (פשוט object) וכדי לעבוד איתו צריך להמיר אותו למה שאתה מצפה לקבל, במקרה הזה המחלקה שאתה יצרת.

פורסם

אפשר בלי explicit cast ?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים