แบบ A ใช้ตัวแปรเพิ่มอีกตัวหนึ่งซึ่งหาความต่างอะไรไม่ได้ในเชิง Performance หรือ Memory
แต่แบบ A สามารถอ้างอิงค่านั้นๆ ได้อีกครั้ง ทำให้แบบ B เหมาะสำหรับการใช้ครั้งเดียวใน Method ครับ
ถ้าเขียน cil โค๊ดโดยตรงก็น่าจะประมาณนี้
A:
ldloc.s a
call Font ClassName::getFont()
dup
stloc.s font
callvirt instance void ClassName::setFont(Font)
B:
ldloc.s a
call Font ClassName::getFont()
callvirt instance void ClassName::setFont(Font)
ไม่ต่างกันครับ
อยากรู้ก็ต้อง decompile ดูครับ แต่สองแบบนี้ ถ้าโค้ดมีแค่นี้ น่าจะเท่ากันทุกประการเลยครับ
แบบ A ใช้ตัวแปรเพิ่มอีกตัวหนึ่งซึ่งหาความต่างอะไรไม่ได้ในเชิง Performance หรือ Memory
แต่แบบ A สามารถอ้างอิงค่านั้นๆ ได้อีกครั้ง ทำให้แบบ B เหมาะสำหรับการใช้ครั้งเดียวใน Method ครับ
ถ้าเขียน cil โค๊ดโดยตรงก็น่าจะประมาณนี้
A:
ldloc.s a
call Font ClassName::getFont()
dup
stloc.s font
callvirt instance void ClassName::setFont(Font)
B:
ldloc.s a
call Font ClassName::getFont()
callvirt instance void ClassName::setFont(Font)
เข้าใจละครับ ขอบคุณมากครับ
เวลาดูสาวชอบดูสาวขาวๆ Sex Sex เวลาดู Notebook ชอบแบบ"ถึกๆดำๆ"
Twitter : @Zerntrino
G+ : Zerntrino Plus