• 0
كارم سامي

object reference not set to an instance of an object.

سؤال

يظهر هذا الخطأ اثتاء تنفيذ الكود التالي وذلك عند السطر 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 هل تكون سبب المشكلة ؟؟

تم تعديل بواسطه كارم سامي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

2 إجابة على هذا السؤال .

  • 0

أخي كارم،

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

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

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

 

لذلك:

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

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

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

بالتوفيق،،،

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكراً اخي

Tarek Jihad

 

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

 

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .