There's two type of types in C#. Value and Reference types. Too many developers miss to understand these concepts resulting in misunderstanding and logical errors when copying variables or using function parameters etc.
Value typed variables are the value. Refence typed variables are a pointer to the variables content. Using a reference type parameter to a function is quite different in certain aspects from using a value type parameter. Lack of understanding will generate logical errors in code.
Here's two overview articles on the subject. Make sure you understand all of this. You will benefit from it in so many aspects of your C# programming.