ขนาดไบต์สำหรับประเภทไม่น่าสนใจเกินไปเมื่อคุณต้องจัดการกับภาษาเดียว (และสำหรับรหัสที่คุณไม่ต้องเตือนตัวเองเกี่ยวกับคณิตศาสตร์ล้น) ส่วนที่น่าสนใจคือเมื่อคุณเชื่อมโยงระหว่างภาษาหนึ่งไปยังอีกภาษาหนึ่งวัตถุ C # ถึง COM ฯลฯ หรือคุณกำลังทำการขยับบิตหรือปิดบังและคุณต้องเตือนตัวเอง (และผู้ตรวจทานโค้ดของคุณ) ของขนาดของข้อมูล
ในทางปฏิบัติฉันมักจะใช้ Int32 เพียงเพื่อเตือนตัวเองว่าพวกเขามีขนาดเท่าไหร่เพราะฉันเขียน C ++ ที่ได้รับการจัดการ (เพื่อเชื่อมต่อกับ C #) เช่นเดียวกับ C ++ ที่ไม่มีการจัดการ
ตราบใดที่คุณอาจรู้ว่าใน C # เป็น 64- บิต แต่ใน C ++ พื้นเมืองมันจะจบลงที่ 32- บิตหรือถ่านเป็น Unicode / 16-bits ในขณะที่ใน C ++ มันเป็น 8 บิต แต่เราจะรู้ได้อย่างไร คำตอบคือเพราะเราได้ค้นหาในคู่มือแล้วก็พูดอย่างนั้น
ด้วยเวลาและประสบการณ์คุณจะเริ่มมีความขยันขันแข็งมากขึ้นเมื่อคุณเขียนรหัสเพื่อเชื่อมระหว่างภาษา C # กับภาษาอื่น ๆ (ผู้อ่านบางคนกำลังคิดว่า "ทำไมต้องเป็นคุณ?") แต่ IMHO ฉันเชื่อว่าเป็นวิธีที่ดีกว่าเพราะ ฉันจำไม่ได้ว่าสิ่งที่ฉันเขียนเมื่อสัปดาห์ที่แล้ว (หรือฉันไม่จำเป็นต้องระบุในเอกสาร API ของฉันว่า "พารามิเตอร์นี้เป็นจำนวนเต็ม 32- บิต")
ในF # (แม้ว่าฉันไม่เคยใช้มัน) พวกเขาให้คำจำกัดความint , int32และnativeint nativeintคำถามเดียวกันควรเพิ่มขึ้น "ฉันจะใช้อันไหนดี?" ตามที่คนอื่น ๆ พูดถึงในกรณีส่วนใหญ่มันไม่ควรสำคัญ (ควรมีความโปร่งใส) แต่ฉันจะเลือก int32 และ uint32 เพียงเพื่อลบความคลุมเครือ
ฉันเดาว่ามันจะขึ้นอยู่กับแอปพลิเคชันที่คุณกำลังใช้รหัสใครใช้มันการเข้ารหัสที่คุณและทีมของคุณปฏิบัติตามนั้น ฯลฯ เพื่อพิสูจน์ว่าเมื่อใดควรใช้ Int32