Anyway.. Whether it works or not I would personally just write the Copy function to create a new instance and copy over the fields. Otherwise at some point in the future I might decide to add a new field which contains a string or another type and BAM!.. things will start going weird and I'd end up wondering why.
Samehere.