In C#, string is a reference type, not a value type. Value types include structs, enums, and primitive types (int, bool, etc.). Delegates are also reference types. When you assign a string variable, you're copying a reference, not the actual string data.