تم تعديل هذه المشاركة بواسطة azouzeg في 24 أكتوبر 2013 في 14:31
عزوز عبداللاه
مدرب ومطور قواعد بيانات أكسس
الاهتمامات
VBA,VB.NET,ASP.NET,SQL SERVER, ORACLE
azouzeg@hotmail.com
01004147149
تم تعديل هذه المشاركة بواسطة azouzeg في 24 أكتوبر 2013 في 14:31
عزوز عبداللاه
مدرب ومطور قواعد بيانات أكسس
الاهتمامات
VBA,VB.NET,ASP.NET,SQL SERVER, ORACLE
azouzeg@hotmail.com
01004147149
لأنه لا يوجد New sub للكلاسس OleDbDataReader
فـNew Sub هو يقوم بإعداد متغيرات الكلاسس وإسناد القيم الجديدة إليها
بعض الكلاسات لا يوجد فيها new sub وبعضها فيها ..
ولكن هناك ما يسمى بالـObject كل شئ من هذا النوع يجب أن نضيف New إليه
أتمنى أن يمر أحد الخبراء للتوضيح أكثر
تحياتي ^_^
كل ما قاله bahbah صحيح ما عدا اخر جملة : لكن هناك ما يسمى بالـObject كل شئ من هذا النوع يجب أن نضيف New إليه
New تستخدم لخلق object جديد يقيمه الافتراضية ولكن ذلك لا يعني انك يجب ان تستعمل كلمة new
dim x as new stringdim x as string = "something"
كلاهما صحيح
بالنسبة لل OleDBDataReader فهي لا تقبل ان تنخلق بكلمة New لان لا وجود ل constructor لها اي لا تحتوي على Sub New()
اما لماذا لا تحتوي على Sub New لانها كلاس موروثة هكذا. اذا تابعت تسلسل الوراثة لها ستجد الاتي
System.Object >> System.MarshalByRefObject >> System.Data.Common.DbDataReader >> System.Data.OleDb.OleDbDataReader
DataReader سو ترث من DbDataReader وال DbDataReader سوف ترث من MarshalByRefObject وهذه لا يوجد بها New Constructor بل تخلق ال object باستعمال امر CreateObjRef
لماذا هذا؟ لان DataReader المقصود بها هي Get Data from an object by Stream اي انها تحتاج لوجود another object to get data from لذلك فانك تلاحظ ان الطريقة الوحيدة لخلقها هي باستعمال Command.ExecuteReader ووجودها منفصلة عن ال command لا معنى له حيث تحتاج ال شيء تقرا منه
تم تعديل هذه المشاركة بواسطة samir ibrahim في 24 أكتوبر 2013 في 16:32
وعليكم السلام
شكراً على التعقيب أستاذ سمير ولكن .. هناك بعض الأسهلة فأنا لست خبيراً في هذه التفاصيل ..
------------------------------------------
أنت وضعت مثال عن الـString ..
هل الـString كائن (Object) ؟؟
ولكن ماذا لو كان الـString ليس أساسياً ، أي يجب إضافة مكتبة لإستعماله ...
هل حينها سنستعمل New ..
في الكثير من البرامج التي عملت عليها ..
عندما أنسى كلمة New للـObject أعاني من الأخطاء بشدة
قد يكون الـString كائن ولكن لأنه مضاف أساساً مع مشروعك في قيمته الإفتراضية حينها لا تحتاج إستعمال New
تحياتي ^_^
bahbah كتب:أنت وضعت مثال عن الـString ..
هل الـString كائن (Object) ؟؟
اجل
String يرث من object مباشرة :String Class
Object هو اصغر كائن معرف في كل مكتبة .Net
مثال:
Dim Obj as New Object
obj.Equals
obj.GetHashCode
obj.GetType
obj.ToString
Dim objstr As New String
objstr.Equals
objstr.GetHashCode
objstr.GetType
objstr.ToString
objstr. etc etc etcكائن obj من نوع object لديه 4 خصائص
كائن objstr من نوع string ليده خصائص object الاربعة التي ورثها منه بالاضافة الى خصائصه الخاصة فيه
اقتباس
لكن ماذا لو كان الـString ليس أساسياً ، أي يجب إضافة مكتبة لإستعماله ...
هل حينها سنستعمل New ..
حسب المكتبة وميراثها. اذا كانت ترث من مصدر عنده New Sub() or CreateObjRef
اقتباس
عندما أنسى كلمة New للـObject أعاني من الأخطاء بشدة
هل بامكانك ان تعطي مثالا؟
اقتباس
قد يكون الـString كائن ولكن لأنه مضاف أساساً مع مشروعك في قيمته الإفتراضية حينها لا تحتاج إستعمال New
هذا صحيح تماما
تحياتي الك :)
تم تعديل هذه المشاركة بواسطة samir ibrahim في 24 أكتوبر 2013 في 18:52