मैं क्यों यह काम कर रहा है समझ में नहीं आता ...असंभव जादू - यह वैध कथन क्यों है?
class Program
{
static void Main(string[] args)
{
IComparable.Equals(12, 3);
}
}
आईएल कोड:
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// Code size 21 (0x15)
.maxstack 8
IL_0000: nop
IL_0001: ldc.i4.s 12
IL_0003: box [mscorlib]System.Int32
IL_0008: ldc.i4.3
IL_0009: box [mscorlib]System.Int32
IL_000e: call bool [mscorlib]System.Object::Equals(object,
object)
IL_0013: pop
IL_0014: ret
} // end of method Program::Main
यह Object.Equals (वस्तु, वस्तु) bool करने के लिए संकलित, लेकिन क्यों?
वाह, जिसने मुझे एक सेकंड के लिए अच्छा लगाया। ध्यान दें कि यह * किसी भी * (कक्षा, enum और) इंटरफेस के साथ काम करता है, और किसी भी पैरामीटर प्रकार के लिए - निश्चित रूप से (एक बार जब आप इसके बारे में सोचते हैं)। –
वास्तव में सभी इंटरफेस के साथ काम करता है, लेकिन इसके पीछे क्या कारण है? – boli
अच्छी तरह से डेविड का जवाब देखें। –