קריאה למתודה של מחלקה גנרית ללא ידיעת סוג T


http://www.developers.org.il/forums/Topic9637.aspx
Print Topic | Close Window

By eharshosh - 10/03/2010 03:37:44
הערה: אני משתמש בסוגריים במקום סוגריים משולשות מכיוון שהאתר לא תומך.

יש לי מחלקה גנרית שתומכת במתודה הסטטית sf.
המתודה הסטטית sf עוברת דרך Reflection על Attributes בתוך T (ה-Type הגנרי) ומבצעת פעולות בהתאם לAttributes.
ככה שלמרות שהיא סטטית, הסוג של T משחק פה תפקיד.

התוצאה של:
קטע קוד

GenericClass(ClassA).sf();

בכלל לא דומה ל:
קטע קוד

GenericClass(ClassB).sf();


עד פה אין שום בעיה...
הבעיה צצה כשיש לי אובייקט מסוג אובייקט שלמעשה רק בעזרת Reflection ניתן לדעת את הסוג המדוייק שלו.
אבל אני לא יכול לבצע:
GenericClass(typeof(myObj)).sf();

יש לי שתי שאלות:
1. למה?
2. איך בכל זאת אפשר?
By beginner - 10/03/2010 14:29:20
מהי הסיטואציה המדוייקת? האם בטוח שרק בעזרת Reflection ניתן לדעת מהו הסוג? (ולא משהו פשוט, כמו TypeOf או Is)
By eharshosh - 10/03/2010 16:42:03
אפשר לדעת בעזרת typeof...

הבעיה היא שיש לי הרבה מחלקות ואני לא רוצה לעשות בדיקה כל פעם.

למען האמת, אני צריך לקבל אובייקט, לבצע עליו את הפעולה ולהחזיר אותו כאובייקט מסוג אובייקט ככה שאני רוצה לעשות את זה בצורה גנרית.