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

4
ทำไมโครงสร้างและคลาสแยกแนวคิดใน C #
ในขณะที่การเขียนโปรแกรมใน C # ฉันสะดุดกับการตัดสินใจออกแบบภาษาแปลก ๆ ที่ฉันไม่เข้าใจ ดังนั้น C # (และ CLR) มีชนิดข้อมูลรวมสองประเภท: struct(ค่าประเภทเก็บไว้ในสแต็กไม่มีการสืบทอด) และclass(อ้างอิงประเภทเก็บไว้ในกองมีมรดก) การตั้งค่านี้ฟังดูดีในตอนแรก แต่จากนั้นคุณสะดุดวิธีที่ใช้พารามิเตอร์ของชนิดรวมและเพื่อหาว่าจริง ๆ แล้วเป็นประเภทค่าหรือประเภทอ้างอิงคุณต้องค้นหาการประกาศของประเภทนั้น บางครั้งอาจทำให้สับสนได้ วิธีแก้ปัญหาที่เป็นที่ยอมรับโดยทั่วไปดูเหมือนว่าจะประกาศstructว่า "ไม่เปลี่ยนรูป" (ตั้งค่าเขตข้อมูลไว้readonly) เพื่อป้องกันความผิดพลาดที่อาจเกิดขึ้นโดย จำกัดstructประโยชน์ของ ตัวอย่างเช่น C ++ ใช้โมเดลที่สามารถใช้งานได้มากขึ้น: ช่วยให้คุณสร้างอินสแตนซ์ของวัตถุบนสแต็กหรือบนฮีปและส่งผ่านตามค่าหรือโดยการอ้างอิง (หรือโดยตัวชี้) ฉันได้ยินอยู่เสมอว่า C # ได้รับแรงบันดาลใจจาก C ++ และฉันก็ไม่เข้าใจว่าทำไมมันไม่ใช้เทคนิคนี้ การรวมclassและสร้างstructเป็นหนึ่งเดียวกับตัวเลือกการจัดสรรที่แตกต่างกันสองตัว (ฮีปและสแต็ค) และส่งต่อให้เป็นค่าหรือ (อย่างชัดเจน) เนื่องจากการอ้างอิงผ่านทางrefและoutคำหลักดูเหมือนเป็นสิ่งที่ดี คำถามคือทำไมclassและstructกลายเป็นแนวคิดที่แยกต่างหากใน C # และ CLR แทนที่จะเป็นประเภทรวมหนึ่งที่มีสองตัวเลือกการจัดสรร?

2
IronScheme สมบูรณ์เพียงพอหรือมั่นคงเพียงพอที่จะเรียนรู้ที่คุ้มค่าหรือไม่
IronSchemeถูกกล่าวถึงในWikipediaว่าเป็นตัวตายตัวแทนต่อโครงการที่ล้มเหลวที่เรียกว่า IronLisp นำ Lisp ไปยัง CLR และ. NET วิธีที่ Clojure ทำเพื่อ JVM ใครบ้างมีประสบการณ์กับภาษานี้หรือไม่? มันดูค่อนข้างสมบูรณ์ (99%) แต่ฉันไม่แน่ใจว่าจะตัดสินได้อย่างไรว่ามันคุ้มค่ากับเวลาของฉันที่จะทำตามวิธีการตั้งค่าหรือไม่ ด้วยความเสถียรหรือสมบูรณ์ฉันหมายถึงการใช้มันสำหรับโครงการจริงมากกว่าแค่เล่นซอกับเครื่องมือและปัญหาสไตล์ของ Project Euler
17 .net  lisp  scheme  clr 

4
ค่าคงที่ใน C #
ทำไมคอมไพเลอร์เก็บค่าคงที่ในข้อมูลเมตาแอสเซมบลี? พวกเขาฝังตัวโดยตรงกับรหัสภาษาระดับกลางจากข้อมูลเมตาแอสเซมบลีหรือไม่
9 c#  clr  compilation 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.