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

2
เหตุใดการค้นหาตัวเริ่มต้นของประเภทจึงทำให้ NullReferenceException
นี่ทำให้ฉันนิ่งงัน ฉันพยายามเพิ่มประสิทธิภาพการทดสอบบางอย่างสำหรับ Noda Time ซึ่งเรามีการตรวจสอบประเภทเริ่มต้น ฉันคิดว่าฉันพบว่าเป็นชนิดที่มี initializer ชนิด (คอนสตรัคคงที่หรือตัวแปรคงที่กับ initializers) AppDomainก่อนที่จะโหลดทุกอย่างเข้าใหม่ สำหรับความประหลาดใจของฉันการทดสอบเล็ก ๆ น้อย ๆ ของการขว้างปานี้NullReferenceException- แม้ว่าจะไม่มีค่า null ในรหัสของฉัน มันจะโยนข้อยกเว้นเมื่อรวบรวมโดยไม่มีข้อมูลการแก้ปัญหา นี่เป็นโปรแกรมสั้น ๆ แต่สมบูรณ์เพื่อแสดงให้เห็นถึงปัญหา: using System; class Test { static Test() {} static void Main() { var cctor = typeof(Test).TypeInitializer; Console.WriteLine("Got initializer? {0}", cctor != null); } } และหลักฐานการรวบรวมและผลลัพธ์: c:\Users\Jon\Test>csc Test.cs …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.