/// <summary> /// Updates the class. /// </summary> /// <param name="newClass">The new class.</param> /// <returns>The new DynamoData object.</returns> public DynamoData UpdateClass(DynamoClass newClass) { var NewLength = newClass.Keys.Length; var OldLength = Data.Length; if (OldLength >= NewLength) { this[NewLength - 1] = Dynamo.UninitializedObject; return(new DynamoData(newClass, Data, Version)); } else { var TempArray = new object[GetAlignedSize(NewLength)]; Array.Copy(Data, TempArray, OldLength); var NewData = new DynamoData(newClass, TempArray, Version); NewData[OldLength] = Dynamo.UninitializedObject; return(NewData); } }
/// <summary> /// Initializes a new instance of the <see cref="DynamoData"/> class. /// </summary> /// <param name="definition">The definition.</param> /// <param name="data">The data.</param> /// <param name="version">The version.</param> internal DynamoData(DynamoClass definition, object?[] data, int version) { Version = version; Data = data; Definition = definition; }