示例#1
0
        internal static DataTypeCategory FromId(AdsDatatypeId id, string typeName)
        {
            DataTypeCategory pointer = FromId(id);

            if (!string.IsNullOrEmpty(typeName) && (pointer == DataTypeCategory.Unknown))
            {
                if (DataTypeStringParser.IsPointer(typeName))
                {
                    pointer = DataTypeCategory.Pointer;
                }
                else if (DataTypeStringParser.IsReference(typeName))
                {
                    pointer = DataTypeCategory.Reference;
                }
                else if (DataTypeStringParser.IsArray(typeName))
                {
                    pointer = DataTypeCategory.Array;
                }
                else if (DataTypeStringParser.IsSubRange(typeName))
                {
                    pointer = DataTypeCategory.SubRange;
                }
                else if (DataTypeStringParser.IsIntrinsicType(typeName))
                {
                    pointer = DataTypeCategory.Primitive;
                }
                else if (DataTypeStringParser.IsString(typeName))
                {
                    pointer = DataTypeCategory.String;
                }
            }
            return(pointer);
        }
示例#2
0
 internal static DataTypeCategory FromType(ITcAdsDataType type) =>
 (!DataTypeStringParser.IsReference(type.Name) ? (!DataTypeStringParser.IsPointer(type.Name) ? (!DataTypeStringParser.IsSubRange(type.Name) ? (!type.HasSubItemInfo ? (!type.HasArrayInfo ? (!type.HasEnumInfo ? (string.IsNullOrEmpty(type.BaseTypeName) ? (!DataTypeStringParser.IsString(type.Name) ? FromId(type.DataTypeId, type.Name) : DataTypeCategory.String) : DataTypeCategory.Alias) : DataTypeCategory.Enum) : DataTypeCategory.Array) : DataTypeCategory.Struct) : DataTypeCategory.SubRange) : DataTypeCategory.Pointer) : DataTypeCategory.Reference);