ما هي لاحقة (نوع الحرف) ل "بايت" ثوابت رقمية في VB.NET?

StackOverflow https://stackoverflow.com/questions/252817

  •  05-07-2019
  •  | 
  •  

سؤال

فقط من باب الفضول:

أعرف أنني أستطيع أن أقول مترجم إذا كنت تريد قيمة إلى تفسير معين نوع عددي مثلامثل عدد صحيح (32 بت), هذه الطريقة إلحاق "أنا" (نوع الحرف) إلى قيمة ثابتة:

Private Function GetTheAnswerAsInteger() As Integer

   Return 42I

End Function

هناك أيضا "S" قصيرة "د" عشري ، إلخ.

ولكن ما هو لاحقة بايت?تلميح:انها ليست واحدة واضحة "ب"...

هل كانت مفيدة؟

المحلول

ليس هناك أحد.إذا كنت بحاجة إلى التمييز بين صحيح بايت (مثلا ، الاتصال المناسبة الزائد) عن ثابت ، تحتاج إلى المدلى بها.

(وينطبق الشيء نفسه في C#, بالمناسبة.)

MSDN يوفر تأكيد:

بايت لا الحرفي نوع الحرف أو معرف نوع الحرف.

هناك أيضا قائمة من نوع الشخصيات الحرفي اللواحق.

نصائح أخرى

لذا أضفنا الثنائية حرفية في 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

لا يوجد بايت الحرفي في .صافي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top