今天在 BDN 中看到一篇文章
http://bdn.borland.com/article/0،1410،32765،00.html
重要的部分摘抄如下
ملخص تنفيذي
• مساحات الأسماء لا تؤثر على Delphi لـ Win32.
• يتم إنتاج مساحات الأسماء بناءً على اسم الوحدة على النحو التالي:
• إذا تم منقط اسم الوحدة ، فسيتم استخدام اسم الوحدة حتى النقطة الأخيرة.
• إذا لم يتم منقطها ، فسيتم استخدام مساحة الاسم الافتراضية.
• إذا لم يكن هناك مساحة اسم افتراضية ، فسيتم استخدام اسم الوحدة.
• قد يتطلب الكود الذي تم تحويله من Delphi 8 بعض التعديلات.
• استخدم دائمًا الحزم وليس المكتبات لإنشاء مجموعات قابلة للمشاركة.
• سوف تشير Delphi دائمًا إلى الأنواع باسم الوحدة الكاملة.
• سوف تحتاج لغات أخرى إلى الرجوع إلى الأنواع باستخدام مساحة الاسم.
• إعلانات ASP.NET وملفات التكوين و .NET Reflection تشير دائمًا إلى الأنواع بواسطة مساحة الاسم.
• إذا كانت هناك وحدات متعددة تنبعث منها نوعًا عامًا بنفس الاسم في مساحة الاسم نفسها ، فقد تكون التجميع غير صالحة للاستعمال
لقد أوصت بورلاند دائمًا بعدم استخدام مشاريع المكتبة لإنشاء مجموعات. في Delphi 2005 ، يكون المترجم أكثر صرامة ولن يسمح لك بتجميع تطبيق يشير إلى "مكتبة" Delphi.
استخدم دائمًا مشروع حزمة لإنشاء مجموعات .NET.
ومع ذلك ، كما هو الحال مع أي شيء ، هناك استثناءات للقاعدة وهناك العديد من المواقف التي تحتاج فيها إلى استخدام مساحة الاسم على الرغم من أنك ترميز في دلفي.
مثال واحد هو عندما تستخدم العلامات في ملفات ASPX أو ASCX أو ASMX. إذا قمت بإنشاء صفحة ويب تسمى twebform في ملف application.pages.webform1.pas ، فستكون علامة الصفحة:
<٪@page language = "c#" codeBebeHind = "WebForm1.pas" errantits = "application.pages.twebform1" ٪> |
آخر هو عند نقل المعلومات إلى .NET في شكل سلاسل ، خاصة عند استخدام واجهات برمجة التطبيقات القائمة على الانعكاس وملفات التكوين:
var c: typeconverter ؛ C: = Assembly.createinstance ('sample.controls.tconverter') ؛ |
هذا الفرق الطفيف عادة ما يتجول في الأشخاص وهو شيء تحتاج إلى توخي الحذر ، خاصة عند النقل من Delphi 8 أو تحويل التعليمات البرمجية من لغات أخرى.
这就解释了我原来的疑问 , 在 d2005 中 , 新建一个 .net dll , 编译 , 在别的编译器中 (c#) , 可以使用 但是在 但是在 但是在 中自己却不能用 , 虽然用薄可以解决问题 虽然用薄可以解决问题 ,但是包中添加资源很不方便 , 真是不知道 borland 是怎么想的。