अपेक्षित उत्पादन & उत्पादन मैं डिबग मोड में मिलता है, और VS2010 के तहत जारी मोड, .NET 4.0:स्टेटिक सदस्य चर रिलीज में शुरू नहीं किया जा रहा है - कंपाइलर/क्लियर बग?
bar construct
main
रिलीज़ मोड में आउटपुट नहीं VS2010 डिबगर के तहत, और WinDbg के तहत:
main
कार्यक्रम VS2005 पर इस व्यवहार, नेट 2,0
using System;
namespace static_init
{
public class bar
{
public bar()
{
Console.WriteLine("bar construct");
}
}
class Program
{
public static bar blah = new bar();
static void Main(string[] args)
{
Console.WriteLine("main");
Console.ReadLine();
}
}
}
का प्रदर्शन नहीं करता
शायद संबंधित: Static constructor can run after the non-static constructor. Is this a compiler bug?
अद्यतन
अपने वास्तविक कोड निर्माता bar()
में सी ++ (अप्रबंधित) के साथ कुछ इंटरॉप कोड initializes। इस पुस्तकालय में किसी और चीज से पहले ऐसा होने की ज़रूरत है - क्या यह सुनिश्चित करने का कोई तरीका है कि init()
फ़ंक्शन जो सभी स्थिरताओं को स्पर्श करता है (साइड इफेक्ट्स जिन्हें बाहरी रूप से संदर्भित नहीं किया जाता है) लाइब्रेरी में?
भावी खोजकर्ताओं के लिए नोट: मैं SWIG का उपयोग कर रहा हूं, और यह एक धारणा है कि उन्होंने अपने रैपर पीढ़ी कोड में बनाया है। SWIGStringHelper
वर्तमान अपराधी है, हालांकि और भी हो सकता है।
निष्कर्ष
बड़ा घूँट के संस्करण 2.0 के लिए अद्यतन, यह के रूप में नेट के नए संस्करण की जरूरत स्थिर निर्माता में डालता है।
धन्यवाद 'अपडेट' और 'निष्कर्ष' के लिए बहुत बहुत धन्यवाद - मेरे पास बहुत ही समान परिदृश्य है और पुराने SWIG 1.3.40 का भी उपयोग किया गया - बस 2.0.9 पर अपडेट किया गया और सभी ठीक काम करता है। "निष्कर्ष" मुझे जांच के लिए बहुत समय बचाता है! – sergtk