First of all, the need in "conversion" between class members (you do not "convert" types, you "convert" the instances) is a pretty sure sign of a flaw in the code design.
If two types are not related (one is not derived from another directly or indirectly) you cannot just make a cast between them. All you can do is to create a brand new instance of the target type and copy all data from source instance. Moreover, you may or may not need to deep-clone some data. Please see my past answer, by the way:
How to implement ICloneable for a List Class?[
^].
For some
syntactic sugar, you can develop a type conversion operator in one or another type. Please see:
http://msdn.microsoft.com/en-us/library/85w54y0a.aspx[
^].
See also:
http://en.wikipedia.org/wiki/Deep_copy#Deep_copy[
^],
http://en.wikipedia.org/wiki/Syntactic_sugar[
^].
But first things first. I repeat, first thing would be to review your architecture and design of your data structures, it can be a big flaw.
—SA