الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

object reference not set to an instance of an object.

بدأه كارم سامي في 9 يناير 2015 · 2 رد · 1,403 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يظهر هذا الخطأ اثتاء تنفيذ الكود التالي وذلك عند السطر fileStream_1.Close();
 

 FileStream fileStream_1 = new FileStream(JCM_File_Path_01, FileMode.Open, FileAccess.Read, FileShare.Read);
           
            try
            {
                fileStream_1 = null;
                System.Diagnostics.Process.Start(JCM_File_Path_01);
            }
            finally
            {
               
                fileStream_1.Close();
            }

استخدم فيجول استديو 2010 ولكنني قمت في الايام الاخيرة بتثبيت نسخ حديثة من النت فرام ورك اعتقد 5.2 هل تكون سبب المشكلة ؟؟

تم تعديل هذه المشاركة بواسطة كارم سامي في 9 يناير 2015 في 23:49

#2

أخي كارم،

ضمن جملة try تقوم بوضع fileStream إلى null

لا أعلم ما هو الهدف منها، لكن على العموم، عند الإنتهاء من جملة try فإن التنفيذ حتما سيذهب إلى جملة finally ، وسيحاول إغلاق fileStream الذي يحوي القيمة NULL !

بالتالي يظهر لك الخطأ والذي يعني انك تحاول التعامل مع اوبجكت object ولكنه بالحقيقة null

 

لذلك:

1. إما تلغي الجملة fileStream = null، بالتالي fileStream دائما يؤشر على قيم معينة.

2. أو ضمن جملة finally تضع الشرط

            if (fileStream != null)
                fileStream_1.Close();

بالتوفيق،،،

1

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#3

شكراً اخي

Tarek Jihad

 

بالفعل نجح .. ولا ادري ما هي فائدة اسنادة القيمة null قبل الاغلاق..

 

هل يمكن بالتحكم في الملف الذي تم فتحه ( اغلاقه مثلاً ) بنفس الطريقة ؟؟

مواضيع مشابهة