ערכתי לאחרונה בתאריך 16.04.10 בשעה 09:38 בברכה, ronen333
בלי לפגוע, פשוט עשיתי משהו אחר תוך כדי אז הסתכלתי נטו על הקוד.עכשיו קראתי ועדיין ולא כל כך הבנתי מה אתה שואל.אז תנסה להסביר שוב..
OUT מספיק כדי להודיע לקומפילר שהוא יאותחל בתוך הפונקציה (כפי שאמרתי זה בדיוק כמו ref רק כשאתה מודיע לקומפילר שזה בסדר שהוא לא מאותחל כבר).
אם יש לך IF וELSE שמאתחלים אז אין סיבה שהוא יצעק, אני מניח שזה על סגנון RETURN, אם כל דרך מחזירה תשובה אז הקומפילר יניח לך. אם לא אז הוא יצעק.
לזה אתה מתכוון?
static void aa(out Object a,int b,int c) { if (b > c) a = new Object(); else a = new Object(); } static void Main(string args) { Object a; aa(out a,5,6); }
|
לי הוא לא הודיע על שום שגיאת קומפלציה.
כנראה שלא באמת הוא מאתחל אותו תמיד. תביא את הקוד שבו הוא מודיע לך שגיאה...
עכשיו לגבי השאלת ירושה מOBJECT, תדע שכל דבר בעולםםםםםםםםם בC# יורש מOBJECT. כדי להגיד שמשהו הוא VALUE TYPE יהיה REFERENCE אתה לא צריך להוסיף נקודותיים OBJECT אלא פשוט להמיר את אותו טיפוס לOBJECT.
נגיד יש int a
ואתה רוצה להתחשב בו כאוביקט אז אתה עושה
(object)a;
עריכה:
האמת שזה לא כזה מדויק, זה נקרא לעשות BOXING.. תקרא על זה בMSDN או וויקיפדיה.
נ.ב-אני מבין שאתה בא מC/C++ שמת PROTOTYPE בתוכנית שלך בC#? זה מיותר.. בC# תחום ההכרה של הפונקציות הוא גם למעלה וגם למטה (כל המסמך).

