عامل DirectCast

يقدم عملية تحويل نوع استناداً على توريث أو تنفيذ.

ملاحظات

DirectCast لا يستخدم إجراءات مساعد وقت التشغيل في تحويل Visual Basic, بحيث يمكن أن يوفر أداء أفضل إلى حد ما من CType عند التحويل من نوع بيانات Object.

استخدم الكلمة الأساسية DirectCast بنفس الطريقة التي تستخدم الكلمة الأساسية دالة CType و عامل التشغيل TryCast. توّفر تعبير كوسيطة الأولى و نوع لتحويله بوصفها وسيطة الثانية. DirectCast يتطلب علاقة توريث أو تطبيق بين أنواع بيانات الوسيطتين. وهذا يعني أنه يجب أن ترث من نوع واحد أو تطبق الأخرى.

الفشل و الأخطاء

DirectCast ينشئ خطأ في المحول البرمجي إذا اكتشف وجود أية علاقة توريث أو تطبيق. ولكن عدم وجود خطأ في المترجم لا يضمن تحويلاً ناجحاً. إذا كان تضييق التحويل مطلوباً, فقد يفشل في تشغيل الوقت. إذا حدث هذا، وقت التشغيل يطرح خطأ InvalidCastException.

كلمات التحويل الأساسية

مقارنة بين تحويل نوع الكلمات الأساسية كما يلي.

Keyword

أنواع البيانات

علاقة وسيط

فشل وقت التشغيل

دالة CType

أي أنواع بيانات

يجب تعريف التوسيع أو تضييق التحويل بين أنواع بيانات

يطرح InvalidCastException

DirectCast

أي أنواع بيانات

يجب أن ترث من نوع واحد أو تطبيق نوع آخر

يطرح InvalidCastException

عامل التشغيل TryCast

فقط أنواع المرجع

يجب أن ترث من نوع واحد أو تطبيق نوع آخر

يرجع لا شيء (Visual Basic).

مثال

يوضح المثال التالي استخدامات اثنين من DirectCast، احدهما الذي فشل في وقت التشغيل والآخر نجح.

Dim q As Object = 2.37
Dim i As Integer = CType(q, Integer)
' The following conversion fails at run time
Dim j As Integer = DirectCast(q, Integer)
Dim f As New System.Windows.Forms.Form
Dim c As System.Windows.Forms.Control
' The following conversion succeeds.
c = DirectCast(f, System.Windows.Forms.Control)

في المثال السابق، نوع وقت التشغيل q هو Double. CType نجاح لأن Double يمكن تحويله إلى Integer. ومع ذلك، أول DirectCast فشل في وقت التشغيل لأن نوع وقت التشغيل Double لا توجد علاقة توريث مع Integer، على الرغم من وجود إجراء تحويل. الثانيDirectCast نجح لأن ذلك التحويل من نوع Form لنوع Control، حيث يرث Form .

راجع أيضًا:

المرجع

Convert.ChangeType

المبادئ

توسيع و تضييق التحويلات

تحويلات ضمنية و صريحة