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

14
การตรวจสอบประเภท: typeof, GetType หรือคืออะไร
ฉันเคยเห็นหลายคนใช้รหัสต่อไปนี้: Type t = typeof(obj1); if (t == typeof(int)) // Some code here แต่ฉันรู้ว่าคุณสามารถทำได้เช่นกัน: if (obj1.GetType() == typeof(int)) // Some code here หรือสิ่งนี้: if (obj1 is int) // Some code here โดยส่วนตัวแล้วฉันรู้สึกว่าอันสุดท้ายนั้นสะอาดที่สุด แต่มีบางอย่างที่ฉันขาดหายไปหรือไม่? อันไหนดีที่สุดที่จะใช้หรือมันเป็นการตั้งค่าส่วนตัว?
1512 c#  types  typeof  gettype 

13
ฟิลด์จำนวนเต็ม MySQL จะถูกส่งกลับเป็นสตริงใน PHP
ฉันมีช่องตารางในฐานข้อมูล MySQL: userid INT(11) ดังนั้นฉันจึงเรียกมันไปที่เพจของฉันด้วยข้อความค้นหานี้: "SELECT userid FROM DB WHERE name='john'" จากนั้นสำหรับการจัดการผลลัพธ์ฉันทำ: $row=$result->fetch_assoc(); $id=$row['userid']; ตอนนี้ถ้าฉันทำ: echo gettype($id); ฉันได้รับสตริง นี่ควรเป็นจำนวนเต็มไม่ใช่หรือ
127 php  mysql  types  int  gettype 

8
C # 'คือ' ประสิทธิภาพของตัวดำเนินการ
ฉันมีโปรแกรมที่ต้องการประสิทธิภาพที่รวดเร็ว ภายในหนึ่งในลูปด้านในฉันต้องทดสอบประเภทของวัตถุเพื่อดูว่ามันสืบทอดมาจากอินเทอร์เฟซที่แน่นอนหรือไม่ วิธีหนึ่งที่จะทำได้คือใช้ฟังก์ชันการตรวจสอบประเภทในตัวของ CLR วิธีการที่หรูหราที่สุดอาจเป็นคำหลัก 'is': if (obj is ISpecialType) อีกวิธีหนึ่งคือการให้คลาสฐานฟังก์ชัน GetType () เสมือนของฉันเองซึ่งส่งคืนค่า enum ที่กำหนดไว้ล่วงหน้า (ในกรณีของฉันจริงๆแล้วฉันต้องการบูลเท่านั้น) วิธีนั้นจะรวดเร็ว แต่ไม่ค่อยหรูหรา ฉันเคยได้ยินว่ามีคำสั่ง IL สำหรับคีย์เวิร์ด 'is' โดยเฉพาะ แต่นั่นไม่ได้หมายความว่าจะดำเนินการอย่างรวดเร็วเมื่อแปลเป็นแอสเซมบลีเนทีฟ ใครสามารถแบ่งปันข้อมูลเชิงลึกเกี่ยวกับประสิทธิภาพของ 'is' กับวิธีการอื่น ๆ ได้บ้าง? อัปเดต: ขอบคุณสำหรับคำตอบทั้งหมด! ดูเหมือนว่ามีคำตอบที่เป็นประโยชน์สองสามประเด็น: ประเด็นของ Andrew เกี่ยวกับ 'is' การแสดงโดยอัตโนมัติเป็นสิ่งสำคัญ แต่ข้อมูลประสิทธิภาพที่รวบรวมโดย Binary Worrier และ Ian ก็มีประโยชน์อย่างมากเช่นกัน จะดีมากถ้าคำตอบข้อใดข้อหนึ่งได้รับการแก้ไขเพื่อรวมข้อมูลทั้งหมดนี้
103 c#  performance  clr  gettype 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.