/// <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."); } }
/// <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(); }