I just want to check my understanding of C#\'s ways of handling things, before I delve too deeply into designing my classes. My current understanding is that:
Tragically, there is no way to pass an object by value in C# or VB.NET. I suggest instead you pass, for example, New Class1(Object1) where Object1 is an instance of Class1. You will have to write your own New method to do this but at least you then have an easy pass-by-value capability for Class1.