引用变量
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int y = 1;
IWantSideEffect(ref y);
// 101
Console.WriteLine(y);
}
static void IWantSideEffect(ref int x)
{
x = x + 100;
}
}
}
引用类型的引用参数
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Student student = new Student() { Name = "LL" };
// 46104728
Console.WriteLine(student.GetHashCode());
IWantSideEffect(ref student);
// 12289376
Console.WriteLine(student.GetHashCode());
// Tom
Console.WriteLine(student.Name);
}
static void IWantSideEffect(ref Student student)
{
student = new Student() { Name = "Tom" };
//12289376
Console.WriteLine(student.GetHashCode());
}
}
class Student
{
public string Name { get; set; }
}
}
引用类型的引用参数2
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Student student = new Student() { Name = "LL" };
// 46104728
Console.WriteLine(student.GetHashCode());
IWantSideEffect(ref student);
// 46104728
Console.WriteLine(student.GetHashCode());
// Tom
Console.WriteLine(student.Name);
}
static void IWantSideEffect(ref Student student)
{
student.Name = "Tom";
// 46104728
Console.WriteLine(student.GetHashCode());
}
}
class Student
{
public string Name { get; set; }
}
}
引用类型的引用参数3
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Student student = new Student() { Name = "LL" };
// 46104728
Console.WriteLine(student.GetHashCode());
IWantSideEffect(student);
// 46104728
Console.WriteLine(student.GetHashCode());
// Tom
Console.WriteLine(student.Name);
}
static void IWantSideEffect(Student student)
{
student.Name = "Tom";
// 46104728
Console.WriteLine(student.GetHashCode());
}
}
class Student
{
public string Name { get; set; }
}
}