मैं निम्नलिखित वर्ग पेड़ है वापस नहीं करता है:सी # GetMethod एक माता पिता विधि
public class A
{
public static object GetMe(SomeOtherClass something)
{
return something.Foo();
}
}
public class B:A
{
public static new object GetMe(SomeOtherClass something)
{
return something.Bar();
}
}
public class C:B
{
}
public class SomeOtherClass
{
}
को देखते हुए SomeOtherClass parameter = new SomeOtherClass()
) इस काम करता है:
typeof(B).GetMethod("GetMe", new Type[] { typeof(SomeOtherClass) })).Invoke(null, parameter));
लेकिन इस:
typeof(C).GetMethod("GetMe", new Type[] { typeof(SomeOtherClass) })).Invoke(null, parameter));
फेंकता एक NullReferenceException
, जबकि मेरी इच्छा है कि यह उपरोक्त की तुलना में सटीक विधि को कॉल करेगी।
मैंने कई बाध्यकारी झंडे का कोई फायदा नहीं लिया है। कोई मदद?
विधियां सार्वजनिक स्थिर हैं, मैंने सवाल को गलत तरीके से लिखा (और मैंने सोचा कि मेरे पास सबूत पढ़ा गया है :)। धन्यवाद अभी भी! –
@ सेबस्टियन वानस्टीनकिस्टे: उस स्थिति में, फ्लैटनहेरार्ची (और स्थिर, और सार्वजनिक) को शामिल करने के लिए बाध्यकारी झंडे को बदलना ठीक होना चाहिए। –
बहुत धन्यवाद! भविष्य की पीढ़ियों के लिए: 'टाइपोफ़ (सी) .GetMethod ("GetMe", बाइंडिंगफ्लैग्स। फ्लैटनहेरार्ची | बाइंडिंगफ्लैग्स.पब्लिक | बाइंडिंगफ्लैग्स। स्टेटिक, नल, नया टाइप [] {टाइपोफ (कुछऑथ क्लास)}, शून्य))। (नल) , पैरामीटर)); 'चाल थी। –