تطبيق نوع البيانات

كل نوع بيانات أولي‬ في Visual Basic مدعومة من قبل بنية أو فئة في مساحة الاسم System. يستخدم المحول البرمجي كل كلمة أساسية لنوع البيانات كاسم مستعار من أجل البنية الأساسية أو الفئة. على سبيل المثال، التصريح عن متغير مع الكلمة المحجوزة Byte هو نفسه التصريح عن الاسم البنية المؤهل بالكامل System.Byte.

في Visual Basic، يتم تطبيق أنواع البيانات استناداً إلى التصنيف الخاص بهم. Visual Basic يمكن تصنيف أنواع البيانات استناداً إلى ما إذا كان متغير من نوع معين يقوم بتخزين البيانات الخاصة به أو مؤشر إلى البيانات. إذا كان يقوم بتخزين البيانات الخاصة به فهو نوع القيمة إذا كان تتضمن مؤشر إلى بيانات موجودة في مكان آخر في الذاكرة فهو ;نوع المرجع.

أنواع القيم

نوع بيانات هو نوع القيمة إذا كان يحتوي على بيانات في ذاكرتها المخصصة. أنواع القيمة تتضمّن التالي:

  • الكل أنواع بيانات الرقمية

  • Boolean و Char و Date

  • كل البنيات, حتى لو كان الأعضاء الخاصة بهم من أنواع المرجع

  • عمليات التعداد، لأن نوع المصدر الخاص بها دوماً SByte, Short, Integer, Long, Byte, UShort, UInteger، أو ULong

كل بنية هي نوع قيمة، حتى في حالة وجود الأعضاء نوع المرجع. ولهذا السبب، فإن قيمة أنواع مثل Char و Integer يتم تنفيذها بواسطة بنيات .NET Framework.

تقوم بتعريف نوع القيمة باستخدام الكلمة الأساسية المحجوزة على سبيل المثال، Decimal. يمكنك أيضاً استخدام الكلمة الأساسية New ليهيّئ نوع القيمة. يكون هذا مفيداً بشكل خاص إذا كان النوع يحتوي دالة إنشائية التي تأخذ المعلمات. مثال هذا هو مُنشئ Decimal(Int32, Int32, Int32, Boolean, Byte) ، والتي تبني قيمة Decimal جديدة من الأجزاء التي تم توفيرها.

أنواع المراجع

نوع المرجع يحتوي على مؤشر إلى موقع آخر في الذاكرة التي تحتوي على البيانات. تتضمن أنواع مرجع ما يلي:

  • String

  • كل الصفائف, حتى لو كانت العناصر الخاصة بهم هي أنواع قيمة

  • أنواع فئة مثل Form

  • المفوضون

الفئة هي نوع المرجع. لهذا السبب، أنواع المرجع مثل Object و String مدعومة من قبل فئات .NET Framework . لاحظ أن كل صفيف هو نوع المرجع حتى إذا كان أعضاؤه أنواع القيم.

حيث يمثل كل نوع مرجع فئة أساسية .NET Framework، يجب عليك استخدام الكلمة الأساسية عامل تشغيل Visual Basic) New) عندما تقوم بتهيّئها. العبارة التالية تهيّئ صفيف.

Dim totals() As Single = New Single(8) {}

أنواع إضافية متوفرة في NET Framework.

وقت تشغيل اللغة العامة (CLR) أيضا تدعم بنيات و فئات Visual Basic التي لا توفّرها. على سبيل المثال، System.Guid توفر بنية معرّف فريد عمومي (GUID) ، والفئة System.TimeZone يدعم المنطقة الزمنية. يمكنك استخدام هذه الأنواع لتعريف المتغيرات والثوابت و يمكنك الوصول للأساليب .NET Framework التي تطبق على هذه الأنواع. ومع ذلك، Visual Basic لا يدعم العمليات أو تحويلات النوع التي تتضمن أنواع لم توفّرها.

العناصر التي ليست أنواع

عناصر البرمجة التالية لا تعمل على حلها كأنواع ، لأنه لا يمكنك تحديد أي منها كنوع بيانات للعنصر المُعلَن:

  • مساحات الأسماء

  • وحدات نمطية

  • أحداث

  • خصائص وإجراءات

  • المتغيرات والثوابت والحقول

العمل مع نوع بيانات الكائن

يمكنك تعيين نوع المرجع أو نوع القيمة إلى متغير نوع البيانات Object. متغير Object يحتفظ دوماً بمؤشر إلى البيانات، وليست البيانات نفسها. ومع ذلك، إذا قمت بتعيين نوع القيمة إلى متغير Object, فإنه يتصرف كما لو أنه يحتوي على البيانات الخاصة به. لمزيد من المعلومات، راجع نوع البيانات كائن.

يمكنك تكتشف ما إذا كان متغير Object يتصرف كنوع مرجع أو نوع القيمة بتمريرها إلى الأسلوب IsReference على الفئة Information في مساحة الاسم Microsoft.VisualBasic. Information.IsReference يرجع True إذا كان محتوى المتغير Object يمثل نوع المرجع.

أنواع بيانات لديها أعضاء

لأنه يتم اعتمادها عن طريق بنيات و فئات .NET Framework ، أنواع بيانات Visual Basic لديها أعضاء. هؤلاء الأعضاء يتضمنون مُنشئات، أساليب، خصائص و الحقول. يمكنك الوصول إلى الأعضاء (باستثناء المُنشئات) على متغير بنفس طريقة وصولك إلى الأساليب و خصائص الكائن.

يستخدم المثال التالي Year, Month، و خصائص Day و أسلوب البنية DaysInMonth System.DateTime لتحديد عدد الأيام المتبقية في الشهر الحالي.

Dim current As Date = Now
Dim daysRemaining As Integer
daysRemaining = Date.DaysInMonth(current.Year, current.Month) - current.Day

لاحظ أنه يجب أن يتأهل مرجع إلى نوع بيانات عضو له إما نوع الاسم (Date) أو اسم المتغير المعرّف ليكون من ذلك (النوعcurrent).

أمثلة أعضاء نوع البيانات

التعليمات البرمجية التالية توضح نماذج الأولية لبعض الأساليب المفيدة وخصائص الحقول على أنواع بيانات.

<Char>.IsDigit() ' Returns True if character is a numeric digit.

<Char>.IsLower() ' Returns True if character is a lowercase letter.

<Date>.IsLeapYear() ' Returns True if current year is a leap year.

<Date>.ToUniversalTime() ' Returns local date/time converted to UTC.

<Double>.IsInfinity() ' Returns True if contents represent infinity.

<Double>.IsNaN() ' Returns True if contents are not a number (0/0).

<Long>.MaxValue ' Constant representing largest positive Int64 value.

<Object>.GetType() ' Returns Type object representing type of <Object>.

<Object>.GetType().GetTypeCode() ' Returns type code of <Object>.

<String>.Chars(<index>) ' Character at position <index> of <String>.

<String>.Length ' Number of characters currently in <String>.

كل الأنواع الرقمية بما في ذلك Byte و Char، يعرض MaxValue و الحقول العامة MinValue ، والتي يمكن أن تكون مفيدة جداً عندما تتعامل مع هذه الأنواع.

لم يتم التأكد من تكافئ نوع بيانات الأعضاء

.NET Framework توفر العديد من الطرق على أنواع بيانات التي قد تظهر أيضًا كمكافئ إلى دالات والكلمات الأساسية Visual Basic. ومع ذلك، Visual Basic لا يستخدم دائماً أساليب .NET Framework لتنفيذ التحويل أو العمليات الأخرى و النتائج غير متطابقة دوماً.

على سبيل المثال، أسلوب ToSingle ينفذ نفس نوع الإجراء كما تفعل الكلمة الأساسية CSng على تعبير Decimal. لكن CSng غير مضمون لاستخدام System.نوع البيانات.ToSingle ، ولذلك النتائج غير مضمونة ليكون تحت شروط محددة أو إضافية.

وبشكل عام، يجب عليك استخدام عناصر برمجة Visual Basic لأنها أسهل في استخدامها و اجعل التعليمة البرمجية الخاصة بك أكثر قابلية للقراءة. في بعض الحالات، وظائف إضافية قد تكون مطلوبة أن يوفرها أسلوب .NET Framework. للحصول على مثال ، راجع عامل التشغيل "mod لا يقوم بإرجاع نتيجة دقيقة" استكشاف أخطاء أنواع البيانات.

الأقسام ذات الصلة

المرجع

Boolean

Byte

Char

DateTime

Decimal

Double

Guid

TimeZone