ما هي لاحقة (نوع الحرف) ل "بايت" ثوابت رقمية في VB.NET?
سؤال
فقط من باب الفضول:
أعرف أنني أستطيع أن أقول مترجم إذا كنت تريد قيمة إلى تفسير معين نوع عددي مثلامثل عدد صحيح (32 بت), هذه الطريقة إلحاق "أنا" (نوع الحرف) إلى قيمة ثابتة:
Private Function GetTheAnswerAsInteger() As Integer
Return 42I
End Function
هناك أيضا "S" قصيرة "د" عشري ، إلخ.
ولكن ما هو لاحقة بايت?تلميح:انها ليست واحدة واضحة "ب"...
المحلول
ليس هناك أحد.إذا كنت بحاجة إلى التمييز بين صحيح بايت (مثلا ، الاتصال المناسبة الزائد) عن ثابت ، تحتاج إلى المدلى بها.
(وينطبق الشيء نفسه في C#, بالمناسبة.)
بايت لا الحرفي نوع الحرف أو معرف نوع الحرف.
هناك أيضا قائمة من نوع الشخصيات الحرفي اللواحق.
نصائح أخرى
لذا أضفنا الثنائية حرفية في VB الخريف الماضي وحصلت على ردود فعل مماثلة من اختبار في وقت مبكر.نحن لم تقرر إضافة لاحقة بايت على VB.نحن استقر على SB (توقيع بايت) و UB (على غير موقعة بايت).السبب انها ليست فقط ب و SB ذو شقين.
واحد ب لاحقة غامض إذا كنت تكتب في ست عشري (ما لا 0xFFB يعني؟) وحتى لو كان لدينا حل لهذا أو آخر حرف من 'ب' ('Y' يعتبر F# يستخدم هذا) لا يمكن لأحد أن تذكر ما إذا كان الافتراضي كانت موقعة أو غير موقعة .صافي بايت موقعة بشكل افتراضي لذلك فمن المنطقي لاختيار ب و SB ولكن كل غيرها من اللواحق وقعت بشكل افتراضي لذلك سيكون ثابت مع نوع آخر اللواحق لاختيار ب و UB.في النهاية ذهبنا لا لبس فيها SB و UB.-- أنتوني ديالأخضر ،
https://roslyn.codeplex.com/discussions/542111
فقد تم دمج القادمة VB.NET الإفراج, و هذه هي الطريقة التي سوف تعمل:
Public Const MyByte As Byte = 4UB;
Public Const MyByte2 As SByte = 4SB;
هذا الجواب لا توفر حقا لاحقة, لكنه أقرب ما يحصل.
إذا قمت بتعريف امتداد الطريقة
Imports System.Runtime.CompilerServices
Module IntegerExtensions
<Extension()> _
Public Function B(ByVal iNumber As Integer) As Byte
Return Convert.ToByte(iNumber)
End Function
End Module
يمكنك استخدامه مثل هذا:
Private Function GetTheAnswerAsByte() As Byte
Return 42.B
End Function
لا يوجد بايت الحرفي في .صافي.