Rick,
It would seem that you want to redefine the meaning of what assignment is to
be mean synchronize.
Where assignment means to replace one object with another, and synchronize
means to update part of one object with parts of another object.
Reading your initial example I took it to be assignment, as that is what you
had, now you are telling me you really meant for it to be synchronize.
How is any one other than you, to know that although you are using the
assignment operator you really intend for the synchronize "operation" to be
performed?
Further, if "=" is now synchronize, how do you propose to assign one
MyStruct variable to a different MyStruct variable?
Lastly using the assignment operator to mean synchronize also goes against
the .NET Design Guidelines for Class Library Developers.
<blockquote>
Use operator overloading in cases where it is immediately obvious what the
result of the operation will be. For example it makes sense to be able to
subtract one Time value from another Time value and get a TimeSpan. However,
it is not appropriate to use the or operator to create the union of two
database queries, or to use shift to write to a stream.
</blockquote>
http://msdn.microsoft.com/library/d...l/cpconOperatorOverloadingUsageGuidelines.asp
Notice the "immediately obvious" in that statement.
Personally if I wanted two objects to be synchronized I would have one
object raise events that the other object listened to updating itself
accordingly. Or the class would have a Synchronize or UpdateWith method.
Hope this helps
Jay