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

nogc Class

مغلق
بدأه egy_soft في 6 ديسمبر 2004 · 7 رد · 2,132 مشاهدة · في C++.Net
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

إننى أقوم بدراسة VC++.NET (يعنى لسه فى بداية المشوار).

قمت بعمل Control و هذة الـ Control تقوم بإستدعاء Class من نوع __nogc

و عند إستدعاء الـ Control فى C# أو VB تظهر هذة الـ Class

فكيف أجعلها internal مثل كتابة internal Class فى C#

شكراً

#2

أين أنتم يا شباب؟

#3

----------- أنا لا أعرف اليأس -----------

أين أنتم يا شباب؟

#4

أين أنت أخى HGB ؟

#5

متأسف جدا , لم أقرأ آخر 3 ردود مطلقا , فقط أول موضوع ومنذ فترة , وكنت مستعجل ونسيت الموضوع !

========

عموما

اقتباس
قمت بعمل Control و هذة الـ Control تقوم بإستدعاء Class من نوع __nogc

ماأعرفه أنه لايمكن ببساطة وصول لغات برمجة الدوت نت الأخرى لفئات nogc_ الغير مدارة , لأنها لاتخضع لمواصفات CLS و CLR للتكاملية بين اللغات .

لكن يوم غد سأبحث لك عن الموضوع ولايهمك . وسأعطيك رد حتى مثل هذا الوقت مساء بحول الله .

تم تعديل هذه المشاركة بواسطة HGB في 27 مارس 2005 في 01:55

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#6

السلام عليكم.

أرجو أن تعذر الأخ HGB لأن وقته فعلا ضيق هذه القترة كما أوضح بنفسه في ردود له على مواضيع سابقة بالقسم؛ أرجو كذلك أن تعذرني في هذه الدداخلة البسيطة عسى أن يقوم الأخ HGB بالتعليق عليها و بيان أي خطأ قد يوجد بها عندما يتيسر له الوقت. و عنذما يأتينا بالجواب الأشمل.

بالنسبة للـ ++C العادية أو ++Standard (ISO) C فعلى حد علمي لا يوجد مقابل.. أظن هذا منطقي لأن مفهوم الـ Assenbly [ و هي أي صورة ثنائية Binary من الكود لها بيانات وصف ذاتي MetaData في نفس الملف) ] و فكرة تضمين الـ MetaData في الملف نقسه (سواء exe or dll) هي من أفكار الـ NET.

على كل حال لا أدري بالنسبة لـ C++.NET 2003 ... لكن ما أعرفه هو أن المقابل موجود في C++.NET 2005 المعروفة باسم C++/CLI ... بل موجود بنفس الاسم أيضا internal ..

يمكنك أن تقرأ عن هذا و عن باقي الـ Access Modifiers في NET Framework 2.0. (و بالتالي VS.NET2005 بالطبع) في هذه الـ Blog Post

ملاحظة قد تهمك:

الكلمة internal لن تعمل إلا على الـ Refresh Build من VC++.NET 2005 و التي صدرت في ديسمبر السابق على ما أعتقد.. أما الـ Build السابقة لها فكانت تستخدم تعبيرا مزدوجا هو public private.

شخصيا لا أبرمج بالعزيزة ++C لكن بابنة عمامتها الحبيبة #C.. لكني قمت بتجربة public private على Managed Class في VS.NET2003 و أعتطت نتيجة غريبة عند نداء الـ Variable من Assembly أخرى: ظهر اسم الـ Variable في الـ Intellisense و عندما قمت باستخدامه و عمل Build للـ Soultion المحتوي على المشروعين.. أعطاني رسالة خطأ بأن هذا الـ Variable لا ينتمي للـ Class التي أنشئ فيها. بمعنى أخر أن هذا التعبير قام بالعمل فعلا لكن المتغير ظهر في الـ Intellisense رغم ذلك! قمت بتجربة نفس التعبير (public private) على Class عادية Unmanaged (أي دون استخدام gc__ ) فلم يعمل.

جربت نفس التعبير على VC++.NET 2005 Express (الـ Community Technical Preview Build التي صدرت فبراير 2005 ) و طبعا لم يعمل. الغريب أن internal أيضا لم تعمل، و ليس لها ذكر في الـ Specifications الخاصة باللغة ! بحثت على الشبكة. على كل حال اطلعت على سؤال ذي صلة خمنت منه أن الكلمة ستكون مدعومة في الإصدار النهائي و ليس الـ BETA ... مع أنها عملت على النسخة الـ BETA من الاصدارات الأخرى غير Express كما يبين الرابط الأول!!! أما سبب عدم وجود الكلمة في الـ Specifications فهو أن دعمها بدأ من نسخة December بينما الـ Specifications أصدرت في يونيو.

إن كنت تعتبر ما بالأعلى ثرثرة بلا طائل فإليك الحل الذي وجدته في C++/CLI Language Specification Standard - Updated August 3, 2004 : صفحة 61:

العنوان 12.4 Top-level type visibility:

يمكنك عمل ذلك بالنسبة للـ Class كلها و ليس لـ Member محدد فيها، و ذلك بوضع Access Modifier على الـ Class نفسه عند تعريفه هو ببساطة private .. ستقوم هذه الكلمة بنفس دور internal في #C

إذا أردت تطبيق نفس التكنيك على Member بعينه أو أكثر، فعليك بتجربة أي نسخة من VC++.NET2005 على ألا تكون Express أو أقدم من December CTP حتى تجد الكلمة internal مدعومة تماما كما في #C .. أو انتظار النسخة النهائية من أي من المنتجات المذكورة بما فيها Express.

أعرف أنني أطلت عليك دونما طائل لكن فقط وددت بيان الجوانب المختلفة للموضوع.

تحياتي و سلامي للجميع.

,Regards

Mohamed Ahmed Meligy

Senior Software Engineer

SilverKey Tech - Egypt Branch

Computer Engineering Student

High Institute of Engineering, Culture and Science City

E-mail: Eng.Meligy@Gmail.com

Weblog: http://GeeksWithBlogs.NET/Mohamed

Mobile: +20 10 603 3013

#7

ألف شكر للأخوين HGB و محمد على الرد

و لكن من قال أن ما بالأعلى ثرثرة بلا طائل؟

إنك بالفعل فى جمل بسيطة طرحت تقريباً كل زوايا الموضع بالتفصيل

و أشكرك للمرة الثانية و لكن عندى سؤال أخر أرجو أن يتسع صدركم للرد علية.

متى ستصدر Microsoft النسخة الأخيرة من VC++.NET 2005 ?

شكراً

أحمد

#8

الأستاذ المليجي كفى ووفى جزاه الله خيرا , وفعلا نسخة البيتا 1 الحالية فيها أمور لم تكن تعمل وموجودة في ال Specifications أذكر منها أيضا العلامة ! لنوع مهدمات GC غير المهدمات العادية ~ كما أذكر , وبعض الأمور الأخرى نسيتها حقيقة وكانت منذ مدة .

لاأخفيك أني إبتعدت قليلا عن الدوت نت هذه الأيام , لكن لنا عودة قوية لها قريبا , حيث أن ال VC التي أهلكتنا ستموت قريبا ,

عموما البيتا 2 ل 2005 قرأت في chat قبل فترة مع مطوري C++/CLI نفسهم أنا ستصدر في شهر 3 هذا العام !! لكن لم نرى شيئا حتى الآن طبعا , وأن ال release كان سيصدر في شهر 6 تقريبا , لذا فأعطي نسبة خطأ شهرين إضافيين لهذه التواريخ لتصبح 5 و 8 على الترتيب للبيتا1 وال release .

banner_60_468.gif

NOTHING IS IMPOSSIBLE

هذا الموضوع مغلق.

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