निम्न कोड में एक स्टैटिक विधि है, Foo()उदाहरण के लिए, एक कॉल विधि Bar():
public sealed class Example
{
int count;
public static void Foo( dynamic x )
{
Bar(x);
}
void Bar( dynamic x )
{
count++;
}
}
यह त्रुटि * के बिना संकलित करता है, लेकिन रनटाइम पर एक रनटाइम बाइंडर अपवाद उत्पन्न करता है। इन विधियों के लिए गतिशील पैरामीटर को हटाने से एक कंपाइलर त्रुटि होती है, जैसा कि अपेक्षित था।
तो एक डायनामिक पैरामीटर होने के कारण कोड को कैसे संकलित किया जाता है? ReSharper इसे या तो एक त्रुटि के रूप में नहीं दिखाता है।
दृश्य स्टूडियो 2008 में 1: * संपादित करें
संपादित करें 2: जोड़ा sealedक्योंकि यह एक उपवर्ग एक स्थिर हो सकता है कि संभव है Bar(...)विधि। यहां तक कि सीलबंद संस्करण भी संकलित करता है जब यह संभव नहीं होता है कि उदाहरण विधि के अलावा कोई भी विधि रनटाइम पर कॉल की जा सके।
dynamicतब तक उपयोग क्यों नहीं करना चाहिए जब तक आपको वास्तव में आवश्यकता न हो।