Beispiel #1
0
        static StaticArrayRW()
        {
            var type = typeof(TArray);

            if (type.IsArray)
            {
                int rank = type.GetArrayRank();

                var elementType = type.GetElementType();

                Type internalType;

                switch (rank)
                {
                case 1:
                    internalType = typeof(OneRankArrayRWCreater <>).MakeGenericType(elementType);
                    break;

                case 2:
                    internalType = typeof(TwoRankArrayRWCreater <>).MakeGenericType(elementType);
                    break;

                default:
                    internalType = typeof(MultiRankArrayRWCreater <,>).MakeGenericType(type, elementType);
                    break;
                }

                Creater = (IArrayRWCreater <TArray>)Activator.CreateInstance(internalType);
            }
            else
            {
                throw new ArgumentException($"'{typeof(TArray).FullName}' is not a Array type.");
            }
        }
 static StaticArrayRW()
 {
     if (typeof(TArray).IsArray)
     {
         Creater = (IArrayRWCreater <TArray>)Activator.CreateInstance(GetCreaterType());
     }
     else
     {
         throw new ArgumentException($"'{typeof(TArray).FullName}' is not a Array type.");
     }
 }