예제 #1
0
        /// <summary>
        /// Creates new instance.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="offset"></param>
        /// <param name="readType"></param>
        /// <param name="size"></param>
        /// <param name="varType"></param>
        public DataFieldDefinition(string name, int offset, DataFieldReadType readType, int size, DataVarType varType)
        {
            this.Name     = name;
            this.Offset   = offset;
            this.ReadType = readType;
            this.Size     = size;
            this.VarType  = varType;

            if (
                (readType == DataFieldReadType.Bin && (varType == DataVarType.String || varType == DataVarType.Reference)) ||
                (readType == DataFieldReadType.String && (varType != DataVarType.String && varType != DataVarType.Reference))
                )
            {
                throw new ArgumentException($"Type mismatch, {readType} and {varType} not compatible.");
            }
        }
예제 #2
0
 /// <summary>
 /// Creates new instance with Value being set to the type's default.
 /// </summary>
 /// <param name="name"></param>
 /// <param name="type"></param>
 public DataField(string name, DataVarType type)
 {
     this.Name    = name;
     this.VarType = type;
     this.Value   = this.GetDefaultValue();
 }