คำถามติดแท็ก unboxing

10
ประหลาดใจกับประสิทธิภาพด้วย“ as” และประเภท nullable
ฉันเพิ่งแก้ไขบทที่ 4 ของ C # ในความลึกซึ่งเกี่ยวข้องกับประเภท nullable และฉันเพิ่มส่วนที่เกี่ยวกับการใช้ตัวดำเนินการ "เป็น" ซึ่งช่วยให้คุณเขียน: object o = ...; int? x = o as int?; if (x.HasValue) { ... // Use x.Value in here } ฉันคิดว่านี่เป็นระเบียบจริงๆและมันสามารถปรับปรุงประสิทธิภาพมากกว่า C # 1 ที่เทียบเท่าโดยใช้ "คือ" ตามด้วยนักแสดง - หลังจากทั้งหมดด้วยวิธีนี้เราเพียงแค่ต้องขอการตรวจสอบประเภทแบบไดนามิกครั้งเดียวแล้วตรวจสอบค่าง่าย ๆ . เรื่องนี้ดูเหมือนจะไม่เป็นอย่างนั้น ฉันได้รวมแอปทดสอบตัวอย่างด้านล่างซึ่งโดยทั่วไปจะรวมจำนวนเต็มทั้งหมดภายในอาร์เรย์วัตถุ - แต่อาร์เรย์นั้นมีการอ้างอิง null และการอ้างอิงสตริงจำนวนมากรวมถึงจำนวนเต็มชนิดบรรจุกล่อง มาตรฐานวัดรหัสที่คุณต้องใช้ใน C # …

8
การชกมวยและการแกะกล่องคืออะไรและการแลกเปลี่ยนคืออะไร?
ฉันกำลังมองหาคำตอบที่ชัดเจนกระชับและถูกต้อง ตามหลักการแล้วเป็นคำตอบที่แท้จริงแม้ว่าจะยินดีต้อนรับลิงก์ไปยังคำอธิบายที่ดี

2
ความแตกต่างในการแกะกล่องอัตโนมัติระหว่าง Java 6 กับ Java 7
ฉันสังเกตเห็นความแตกต่างของพฤติกรรมการแกะกล่องอัตโนมัติระหว่าง Java SE 6 และ Java SE 7 ฉันสงสัยว่าทำไมถึงเป็นเช่นนั้นเพราะฉันไม่พบเอกสารการเปลี่ยนแปลงใด ๆ ในพฤติกรรมนี้ระหว่างสองเวอร์ชันนี้ นี่คือตัวอย่างง่ายๆ: Object[] objs = new Object[2]; objs[0] = new Integer(5); int myInt = (int)objs[0]; สิ่งนี้รวบรวมได้ดีกับ javac จาก Java SE 7 อย่างไรก็ตามหากฉันให้อาร์กิวเมนต์ "-source 1.6" แก่คอมไพเลอร์ฉันได้รับข้อผิดพลาดในบรรทัดสุดท้าย: inconvertible types found : java.lang.Object required: int ฉันลองดาวน์โหลด Java SE 6 เพื่อคอมไพล์กับคอมไพเลอร์เวอร์ชัน 6 ดั้งเดิม (ไม่มีตัวเลือก …
107 java  casting  java-7  unboxing 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.