In C#, passing by reference is:
void MyFunction(ref Dog dog)
But in C++/CLI code examples I have seen so far, there is no use of ref<
ref<
The "^" symbol indicates that "Dog" is a CLR object, not a traditional C++ object such as "Dog*", which is a pointer to a C++ object Dog. This means that "Dog ^ dog" has the same meaning as "Dog dog" (not "ref Dog dog") in C#