सीएलआर एसजेड-एरे (सिंगल-आयामी, शून्य-आधारित, उर्फ वैक्टर) और गैर-शून्य-आधारित सरणी (भले ही वे एकल-आयामी हैं) का प्रतिनिधित्व करने के लिए अलग System.Type
उदाहरणों का उपयोग करते हैं। मुझे एक ऐसे फ़ंक्शन की आवश्यकता है जो System.Type
का उदाहरण लेता है और यह पहचानता है कि यह एक SZ-array का प्रतिनिधित्व करता है या नहीं। मैं GetArrayRank()
विधि का उपयोग कर रैंक की जांच करने में सक्षम था, लेकिन यह नहीं पता कि यह कैसे जांचें कि यह शून्य-आधारित है। क्या आप मेरी मदद करेंगे?मैं एक सिस्टम को कैसे पहचानूं। टाइप उदाहरण एसजेड-ऐरे का प्रतिनिधित्व करता है?
using System;
class Program
{
static void Main()
{
var type1 = typeof (int[]);
var type2 = Array.CreateInstance(typeof (int), new[] {1}, new[] {1}).GetType();
Console.WriteLine(type1 == type2); // False
Console.WriteLine(IsSingleDimensionalZeroBasedArray(type1)); // True
Console.WriteLine(IsSingleDimensionalZeroBasedArray(type2)); // This should be False
}
static bool IsSingleDimensionalZeroBasedArray(Type type)
{
// How do I fix this implementation?
return type != null && type.IsArray && type.GetArrayRank() == 1;
}
}