ArrayList

אודי777

New member
ArrayList

שבת שלום לכולם התחלתי ללמוד C# וניתקלתי בבעיה קלה, יצרתי class בשם My_Point שבו ישנה פונקציה ()Print לאחר מכן יצרתי בפונקציה Main אוביקט מסוג ArrayList שמכיל אובקטים מהסוג My_Point מהפונקציה Main כשאני יוצר מופע של My_Point אני יכול לקרוא לפונקציה Print אך כשאני מנסה לקרוא לפונצקיה Print מתוך ה- ArrayList לא ניתן . דוגמא להמחשה , static void Main(string[] args) { My_Point P1; ArrayList Arr = new ArrayList(); Arr.add(P1); P1.Print(); - OK Arr[1].Print(); - Not OK } יש למישהו אולי הסבר מדוע זה לא עובד ? תודה אודי
 

J u n k y

New member
אלמנטרי, ווטסון

[Arr[1 של המחלקה ArrayList מחזיר מצביע מסוג object,וב - object לא מוגדרת המתודה Print(). תנסה:
((My_Point )Arr[1]).Print();​
 

pintyo

New member
ב 2.0 עדיף להשתמש ב generics

אם אתה כבר בענייני לימודים, אז אני מניח שאתה לומד על framework 2.0, אם כך עדיף לך לוותר על arraylist וללכת על List, כך אתה יוצר typed list ויכול לחסוך את כל ה cast-ים
My_Point P1; List<My_Point> Arr = new List<My_Point>(); Arr.Add(P1); Arr[0].print();//will work​
וכך יוצר קוד יותר יעיל ויותר קריא
 
למעלה