System.Array सामान्य भाषा रनटाइम (सीएलआर) में सभी सरणी के लिए बेस क्लास के रूप में कार्य करता है। this article के अनुसार: Get
/Set
/Address
:,बहुआयामी प्रणाली के लिए गेट, सेट और पता विधियों पर मुझे जानकारी कहां मिल सकती है। .NET में आरे उदाहरण?
प्रत्येक ठोस सरणी प्रकार के लिए [यह] क्रम तीन विशेष तरीकों कहते हैं।
और वास्तव में अगर मैं इस सी # कोड,
int[,] x = new int[1024,1024];
x[0,0] = 1;
x[1,1] = 2;
x[2,2] = 3;
Console.WriteLine(x[0,0]);
Console.WriteLine(x[1,1]);
Console.WriteLine(x[2,2]);
सीआईएल मैं में
,
IL_0000: ldc.i4 0x400
IL_0005: ldc.i4 0x400
IL_000a: newobj instance void int32[0...,0...]::.ctor(int32,
int32)
IL_000f: stloc.0
IL_0010: ldloc.0
IL_0011: ldc.i4.0
IL_0012: ldc.i4.0
IL_0013: ldc.i4.1
IL_0014: call instance void int32[0...,0...]::Set(int32,
int32,
int32)
IL_0019: ldloc.0
IL_001a: ldc.i4.1
IL_001b: ldc.i4.1
IL_001c: ldc.i4.2
IL_001d: call instance void int32[0...,0...]::Set(int32,
int32,
int32)
IL_0022: ldloc.0
IL_0023: ldc.i4.2
IL_0024: ldc.i4.2
IL_0025: ldc.i4.3
IL_0026: call instance void int32[0...,0...]::Set(int32,
int32,
int32)
IL_002b: ldloc.0
IL_002c: ldc.i4.0
IL_002d: ldc.i4.0
IL_002e: call instance int32 int32[0...,0...]::Get(int32,
int32)
IL_0033: call void [mscorlib]System.Console::WriteLine(int32)
IL_0038: ldloc.0
IL_0039: ldc.i4.1
IL_003a: ldc.i4.1
IL_003b: call instance int32 int32[0...,0...]::Get(int32,
int32)
IL_0040: call void [mscorlib]System.Console::WriteLine(int32)
IL_0045: ldloc.0
IL_0046: ldc.i4.2
IL_0047: ldc.i4.2
IL_0048: call instance int32 int32[0...,0...]::Get(int32,
int32)
IL_004d: call void [mscorlib]System.Console::WriteLine(int32)
जहां उपर्युक्त Get
और Set
तरीकों के लिए कॉल स्पष्ट रूप से देखा जा सकता है एकत्रित न। ऐसा लगता है कि इन तरीकों की धैर्य सरणी की आयामता से संबंधित है, जो संभवत: रनटाइम द्वारा बनाई गई हैं और पूर्व-घोषित नहीं हैं। मैं एमएसडीएन पर इन विधियों के बारे में किसी भी जानकारी का पता नहीं लगा सका और उनके सरल नाम उन्हें गूगलिंग के लिए प्रतिरोधी बनाते हैं। मैं एक भाषा के लिए एक कंपाइलर लिख रहा हूं जो बहुआयामी सरणी का समर्थन करता है, इसलिए मैं इन विधियों के बारे में कुछ आधिकारिक दस्तावेज ढूंढना चाहता हूं, जिसके तहत मैं उन्हें किस स्थिति में अस्तित्व में रख सकता हूं और मैं उनके हस्ताक्षर क्या उम्मीद कर सकता हूं।
विशेष रूप से, मैं, चाहे इसके संभावित एक उदाहरण बनाने के लिए सही प्रकार और आयामी स्वरूप जिस पर प्रतिबिंबित करने के लिए के साथ सरणी के बिना Get
या Set
Reflection.Emit
साथ प्रयोग के लिए के लिए एक MethodInfo
वस्तु पाने के लिए जानना चाहते हैं जैसा कि जुड़ा हुआ उदाहरण में किया जाता है।
@Rob: क्या आपके पास 'पता' विधि के लिए एक उदाहरण है? और क्या आपके पास इस तथ्य का वर्णन करने वाला एक लिंक है कि ये विधियां उत्पन्न की गई हैं? –
@ जॉन - यदि आप मेरे शुरुआती पैराग्राफ में 'इस आलेख' लिंक पर क्लिक करते हैं तो आप उस आलेख पर समाप्त हो जाएंगे, जिसमें से दूसरे पैराग्राफ में उद्धरण लिया गया है। –