Junior — Middle
What are the differences when passing objects of different classes or types to a method?
sobes.tech AI
Answer from AI
When passing objects of different classes or types in C#, the behavior depends on the method of passing and the parameter type:
- Passing by value (value types) — copies the value, changes inside the method do not affect the original.
- Passing by reference (reference types) — copies the reference to the object, changes to the object's properties inside the method are reflected on the original.
- Using the keywords
refandout— allows passing parameters by reference, modifying the reference itself (for example, assigning a new object).
Example:
void ModifyObject(MyClass obj) {
obj.Property = 10; // will change the property of the original object
obj = new MyClass(); // local assignment, will not affect the external object
}
void ModifyValue(ref int x) {
x = 20; // will change the variable outside the method
}
Thus, when passing objects of different types, it is important to understand whether the value or the reference is copied, and how this affects data mutability inside the method.