2012-05-29 19 views
9

मेरे पास dynamic ऑब्जेक्ट है जो कभी-कभी object होता है और कभी-कभी object[] होता है।कैसे जांचें कि एक गतिशील वस्तु सी # में एक सरणी है या नहीं?

मैं कैसे जांच सकता हूं कि डायनामिक ऑब्जेक्ट एक सरणी है या नहीं?

उत्तर

21

उपयोग Type.IsArray:

MSDN से:

int [] array = {1,2,3,4}; 
Type t = array.GetType(); 
// t.IsArray == true 
Console.WriteLine("The type is {0}. Is this type an array? {1}", t, t.IsArray); 
+0

आप सही हैं, मैंने सोचा था कि यह काम नहीं करेगा क्योंकि यह गतिशील है (गेट टाइप टाइप इंटेलिजेंस पर नहीं दिखाया गया है ...), लेकिन संकलन के बाद यह ठीक काम करता है। धन्यवाद – RollRoll

1

क्यों नहीं बस ऑपरेटर 'है' (मैं सिर्फ विजुअल स्टूडियो डीबगर के तत्काल खिड़कियों पर त्वरित परीक्षण किया था), और यह काम करता है। लेकिन यह सुनिश्चित नहीं है कि टिम का जवाब इष्टतम है या नहीं।

void foo(object o) 
{ 
if(o is System.Array) 
{ 
//its array 
} 

} 
संबंधित मुद्दे