मैंने कुछ लेख पढ़े जो कहते हैं कि सी # 3.0 में नामित तर्कों के परिचय के साथ, पैरामीटर का नाम अब सार्वजनिक अनुबंध का हिस्सा है। क्या यह सच है, और इसका क्या अर्थ है? मैंने एक साधारण परीक्षण चलाया और MyLib.dll में पैरामीटर नाम बदलने से MyApp.exe को तोड़ दिया नहीं गया, जिसे मूल नाम के साथ नामित तर्क का उपयोग करके विधि कहा जाता है, मुझे लगता है क्योंकि सी # कंपाइलर ने संकलन समय पर ओवरलोड रिज़ॉल्यूशन किया था, और जेनरेट किया गया था आईएल पैरामीटर नाम के बारे में कुछ नहीं जानता है। यह वही है disassembled कोड परावर्तक पर दिखाई देता है:सी # रनटाइम ब्रेकिंग चेंज में पैरामीटर नाम बदलना है?
private static void Main()
{
bool CS$0$0000 = true;
Class1.DoSomething(CS$0$0000);
Console.ReadKey();
}
... और इस मूल स्रोत कोड है:
static void Main() {
MyLib.Class1.DoSomething(a: true);
Console.ReadKey();
}
हाँ, आप इसे अच्छी तरह से समझ गए हैं, यह तोड़ नहीं रहा है। एक परिदृश्य के साथ आ रहा है जहां यह तोड़ रहा है मुश्किल है, मैं आसानी से देर से बाध्यकारी परिदृश्य के साथ आ सकता हूं जहां यह करता है। –