2016-05-13 7 views
16

पुन: पेश करने के लिए एक सांत्वना अनुप्रयोग बनाएँ:क्या यह आपके लिए सी # बग जैसा दिखता है?

struct Test 
{ 
    public static readonly Test? Null = null; 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     var t = Test.Null; 
    } 
} 

यह compilable है, लेकिन हम रन टाइम पर निम्नलिखित होंगे:

प्रकार 'System.TypeLoadException' की एक बिना क्रिया का अपवाद mscorlib में हुई .dll। अतिरिक्त जानकारी: असेंबली 'कंसोल अनुप्रयोग 17, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = null' से 'ConsoleAplication 17.Test' प्रकार लोड नहीं कर सका।

यह दृष्टिकोण समस्या का हल:

struct Test 
{ 
    public static Test? Null => null; 
} 

उत्तर

17

यह CoreCLR में जाना जाता है कार्यान्वयन सीमा - दोनों उदाहरण और स्थिर क्षेत्र लेआउट एक साथ किया जाता है कि इस त्रुटि में परिणाम है। इसे ठीक करना आसान नहीं है।

स्रोत: Static fields should not contribute to cyclic struct layout #4049

संबंधित मुद्दे