سؤال
ولقد رأيت بعض التعليمات البرمجية حيث يتم استيراد <م> الدرجة م>، بدلا من مساحة الاسم، مما يجعل جميع أعضاء ثابتة / أساليب تلك الفئة المتاحة. هذا هو سمة من سمات VB؟ أو القيام غات أخرى القيام بذلك أيضا؟
وTestClass.vb
public class TestClass
public shared function Somefunc() as Boolean
return true
end function
end class
وMainClass.vb
imports TestClass
public class MainClass
public sub Main()
Somefunc()
end sub
end class
وهذه الملفات هي في الدليل App_Code. مجرد لافتة، لأنني قد فكرت أبدا للقيام بذلك من قبل، ولا أن يكون قد قرأت عن ذلك في أي مكان.
المحلول
واحد من أسباب هذه الميزة في المكان لمحاكاة البصرية الأساسية 6.0 في الخيار GlobalMultiUse عن التوضيح. البصرية الأساسية 6.0 لم يكن لديك القدرة على جعل وحدات الجمهور عبر الحدود DLL. بدلا من ذلك يمكنك تعيين الخاصية التوضيح لGlobalMultiUse
. وهي تستخدم أساسا لفئات فائدة مثل فئة التي تصدر سلسلة من المهام الرياضيات.
وفي كل مرة استدعاء روتين أو وظيفة على فئة مع GlobalMultiUse Instancing
، فيجوال بيسك 6.0 instantiates فئة وراء الكواليس قبل استدعاء الدالة.
ويمكن أن يساء استخدامها لتوليد وظائف العالمية / المتغيرات مع كل مزايا وعيوب.
نصائح أخرى
نعم، انها ل Visual Basic ميزة اللغة . بينما يمكنك إنشاء الأسماء المستعارة، وذلك باستخدام C # الصورة باستخدام بيان ، فإنه لا توجد الآن ' ر يبدو أنه يمكنك استيراد فئة المشتركة إلى النطاق. أن نكون صادقين، لقد استعملت فقط من أي وقت مضى لمرة واحدة في مشروع القديمة التي استخدمت بالفعل. أرى بعض القيمة، ولكن أخشى أنه قد يسبب ضررا أكثر من النفع لالصيانة المستقبلية من التعليمات البرمجية.
واستخدمه كلما أنا باستخدام نفس المكتبة لديها الكثير من الوقت. وخير مثال هو System.Math.
وC # لا يدعم هذه، التي أجد أن تكون مزعجة للغاية.
والواقع، تتوفر هذه الوظيفة لانها تمت مشاركته وظيفة . لو كنت لإزالة معدل المشتركة، هل لا يزال لديك لإنشاء مثيل من فئة للوصول إليه.
لتحقيق الوصول إلى جميع المتغيرات وجميع وظائف ضمن فئة افتراضيا، كنت تريد أن ترث منه.
لبلدي استيراد فئة وربط أساسا إشارة مباشرة إلى ذلك، وليس خلق أي نوع من مثيل ذلك لتتمكن من استخدامها.
وتحرير وضوح: إن الروابط هناك VB صلات محددة، وبالتالي، موضحا وظائف هذا المتعلقة VB.NET
والانتظار، الانتظار، الانتظار ....
ولقد وجدت هذا الصباح فقط أننا يمكن أن تستمد جميع الأشياء (الدرجة ق) داخل أي فئة التي تحتاج إلى مرجعياتها استخدام هذا الأسلوب / وظيفة؛
Protected Overrides Sub Finalize()
MyBase.Finalize()
End Sub