Object reference not set to an...

Admini

New member
Object reference not set to an...

ההודעה שלי לא קופצת יותר, אז העלתי אותה שוב בתקווה שתקפוץ
Object reference not set to an instance of an object. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. Source Error: Line 76: Dim mMsgs() As Message Line 77: For Each sFile In dirs Line 78: mMsgs(iMessage).sSubject = ReadFile(sFile, 900) Line 79: iMessage += 1​
Message זו מחלקה קטנה שנראית בינתיים ככה:
Public Class Message Public sSubject, sFrom, sTo, sBCC, sBody As String Public iMimeParts As Integer End Class​
המשתנים:
Dim iMessage As Integer Dim mMsgs() As Message​
ניסיתי גם את זה: אבל זה לא עזר
For Each sFile In dirs mMsgs(iMessage) = New Message() mMsgs(iMessage).sSubject = ReadFile(sFile, 900) iMessage += 1 Next​
נראה לי שאלו כל הנתונים הנדרשים
 

Admini

New member
כן.

חשוב לציין שאם אני עובד בלי מערך אין בעיה.
 

Admini

New member
כן

חשוב לציין שאין בעיות אם אני לא עובד מול מערך
 

nattygur

New member
כמובן, אין מערכים דינאמים ב Net.

אתה צריך לאתחל את המערך לגודל מסוים. כן יש redim preserve אבל הוא מייצר כל פעם מערך מחדש.
 

gilad g

New member
...וכתחליף למערכים דינאמיים

אפשר להשתמש ב-ArrayList
 

א נ י ה ו

New member
ובכלל - יש דברים חביבים עד מאוד

במחלקה
System.Collections.Specialized​
כל מיני סוגי מערכים אדירים!!!
 

דונג

New member
מה זה STL ?

קראתי את הפירוש של בבילון, אני צריך קצת פרקטיקה
מה זה ? קשור ל Design Patterns ?
 

nattygur

New member
לא Design Patterns

מדובר בסט של templates אשר מכילים אלגוריתמים ויכולות אכסון של טיפוסים שונים. להלן הסבר באנגלית. בקיצור System.Collection הוא מעין גרסה מנוונת. ב whidbey נוספו Templates ל CLR ולכן ניתן להוסיף את ה STL.
The Standard Template Library is a new C++ library that provides a set of easily composable C++ container classes and generic algorithms (template functions). The container classes include vectors, lists, deques, sets, multisets, maps, multimaps, stacks, queues and priority queues. The generic algorithms include a broad range of fundamental algorithms for the most common kinds of data manipulations, such as searching, sorting, merging, copying, and transforming.​
 

דונג

New member
כלומר...

זוהי בעצם מחלקה מדובגת ומוכנה, החושפת פונקציונליות של מבני נתונים ואלגוריתמים, שאפשר פשוט להשתמש בהם, במקום להמציא את הגלגל מחדש. המילה Template מבלבלת מעט, נדמה כי זה מגדיר רק את המסגרת, ועל המשתמש לממש בעצמו את הקוד, למשל - זה מגדיר אובייקט Stack וירטואלי (מגדיר את המשתנים והמתודות שלו) - אם מי שרוצה להשתמש בו, צריך לממש בעצמו את הקוד המבצע. זה מה שהבנתי מהמילה Template
כלומר, אני טועה, אלו מחלקות מוכנות לשימוש מיידי, אמת ?
 

nattygur

New member
פחות או יותר נכון

השם הוא Generic וזה כמו Template ב C++. אלו מחלקות מוכנות אשר יכולות לספק פונקציונאליות לפי טיפוס אשר מועבר אליהם ב RunTime אם אתה רוצה יותר מידע אז קרא כאן.
 

א נ י ה ו

New member
מכיון

שאין לי הרבה כח להתעמק בתוכנית שלך (מצטער) אומר לך דבק אחד - הודעת שגיאה כזאת אומרת שיש לך אובייקט שהוא null , כנראה שכחת לעשות למשהו new שים break point ורוץ step step ותגלה שיש לך אובייקט שהוא undefined בהצלחה.
 

Admini

New member
זה גם אני הבנתי

השאלה היא איך אני מכריז עליו אם כן...
 

yuval k

New member
זה כבר תלוי במה שתמצא.

קודם נסה למצוא היכן הבעיה בדיוק, ואז נמשיך הלאה
 

Admini

New member
הבעיה נובעת רק כשיש מערך

כאשר מדובר ב-DIM רגיל אין בעיה
 

א נ י ה ו

New member
מערך הוא אובייקט

ו ל כ ן - יש צורך לעשות לו new דוגמא :
int MyArray[] = new int[Size] ;//in c sharp​
ובא לציון גואל.
 

Admini

New member
לא עובד

D:\inetpub\wwwroot\ezra\lmm\tests.aspx.vb(27): Arrays cannot be declared with 'New'.
Dim mMsgs() As New Message(iMessages)​
 
למעלה