コード例 #1
0
ファイル: ArrayAdaptor.cs プロジェクト: dten/debugger-libs
 public int[] GetDimensions()
 {
     if (dimensions == null)
     {
         dimensions = new int [array.Rank];
         for (int n = 0; n < array.Rank; n++)
         {
             dimensions [n] = array.GetLength(n);
         }
     }
     return(dimensions);
 }
コード例 #2
0
        public int[] GetDimensions()
        {
            if (dimensions == null)
            {
                dimensions = new int[array.Rank];
                for (int i = 0; i < array.Rank; i++)
                {
                    dimensions[i] = array.GetLength(i);
                }
            }

            return(dimensions);
        }
コード例 #3
0
        private DEBUG_PROPERTY_INFO[] CreateMultiDimArrayPropertyInfos(enum_DEBUGPROP_INFO_FLAGS dwFields, ArrayMirror array)
        {
            var arrayValues = new DEBUG_PROPERTY_INFO[array.Length];

            var dimIndex      = new int[array.Rank];
            var dimLowerBound = new int[array.Rank];
            var dimUpperBound = new int[array.Rank];

            for (int dim = 0; dim < array.Rank; dim++)
            {
                dimIndex[dim]      = array.GetLowerBound(dim);
                dimLowerBound[dim] = array.GetLowerBound(dim);
                dimUpperBound[dim] = array.GetLowerBound(dim) + array.GetLength(dim) - 1;
            }

            for (int i = 0; i < array.Length; i++)
            {
                var valueAtIndex = array.GetValues(i, 1).First();
                arrayValues[i] = new MonoProperty(_stackFrame, _currentMirror, array.Type.GetElementType(), valueAtIndex, string.Join(",", dimIndex)).GetDebugPropertyInfo(dwFields);

                for (int dim = array.Rank - 1; dim >= 0; dim--)
                {
                    if (dimIndex[dim] < dimUpperBound[dim])
                    {
                        dimIndex[dim]++;
                        break;
                    }
                    else
                    {
                        dimIndex[dim] = dimLowerBound[dim];
                    }
                }
            }

            return(arrayValues);
        }