ฉันสงสัยว่าคุณกำลังอ้างถึงมุมมองที่เป็นสีตามประสบการณ์ของคุณเองซึ่งคุณไม่ได้ทำงานกับคนที่ใช้งานประเภทอินทิกรัลอย่างถูกต้อง นี่อาจเป็นเหตุการณ์ที่เกิดขึ้นทั่วไป แต่เป็นประสบการณ์ของฉันที่คนทั่วไปจะใช้พวกเขาอย่างถูกต้องเช่นกัน
ข้อดีคือพื้นที่หน่วยความจำและเวลาซีพียูอาจเป็นพื้นที่ IO เช่นกันขึ้นอยู่กับประเภทที่เคยส่งผ่านสายหรือดิสก์ ประเภทที่ไม่ได้ลงนามจะให้คุณตรวจสอบคอมไพเลอร์เพื่อให้แน่ใจว่าคุณจะไม่ดำเนินการบางอย่างที่เป็นไปไม่ได้รวมถึงการขยายช่วงที่มีอยู่ในขณะที่รักษาขนาดที่เล็กลงเพื่อประสิทธิภาพที่เพิ่มมากขึ้น
ที่ถูกต้องการใช้เป็นที่คุณคาดหวัง - ทุกเวลาที่คุณรู้ว่าสำหรับบางคุณสามารถใช้พวกเขาอย่างถาวร (ไม่ จำกัด โดยไม่ต้องเชื่อมั่นหรือคุณจะเสียใจในภายหลัง)
- หากคุณกำลังพยายามแสดงบางสิ่งที่ไม่น่าจะเป็นเชิงลบ (
public uint NumberOfPeople
) ให้ใช้ประเภทที่ไม่ได้ลงชื่อ
- หากคุณกำลังพยายามแสดงบางสิ่งที่ไม่อาจเกิน 255 (
public byte DamagedToothCount
) ได้อย่างมีเหตุผลให้ใช้ไบต์
- หากคุณกำลังพยายามแสดงบางสิ่งที่อาจมีค่ามากกว่า 255 แต่ไม่ควรใช้จำนวนหลักพันให้ใช้ตัวย่อ (
public short JimmyHoffasBankBalance
)
- หากคุณกำลังพยายามที่จะเป็นตัวแทนของบางสิ่งที่อาจเป็นหลายแสนหลายพันล้านแม้กระทั่ง แต่ไม่น่าจะถึงหลายพันล้านครั้งให้ใช้ int (
public int HoursSinceUnixEpoch
)
- หากคุณทราบหมายเลขนี้อย่างแน่นอนอาจมีมูลค่าสูงมากหรือคุณคิดว่ามันอาจมีหลายพันล้าน แต่คุณไม่แน่ใจว่ามีจำนวนหลายพันล้านรายการนานที่สุดคือทางออกที่ดีที่สุดของคุณ ถ้ายาวไม่ใหญ่พอคุณมีปัญหาที่น่าสนใจและต้องเริ่มมองหาตัวเลขที่มีความแม่นยำตามอำเภอใจ (
public long MyReallyGreatAppsUserCountThisIsNotWishfulThinkingAtAll
)
เหตุผลนี้สามารถนำมาใช้ตลอดในการเลือกประเภทขนาดที่เซ็นชื่อไม่ได้ลงนามและหลากหลายเพียงแค่คิดถึงความจริงเชิงตรรกะของข้อมูลที่คุณเป็นตัวแทนในความเป็นจริง