C#返回引用类型的局部变量会有问题吗?
using System;
namespace MySpace
{
class Program
{
static void Main(string[] args)
{
Program p1 = new Program();
Student s1 = p1.Add();
Console.WriteLine(s1.name);
}
private Student Add()
{
Student student = new Student();
student.name = "husky";
return student;
}
}
class Student
{
public string name;
}
}
刚学C#,我想问一下,如果我返回引用类型的局部变量,会出现这个局部变量所在内存空间被释放的风险吗?GC的回收机制是啥?是这个引用计数不为0就不会回收其内存空间吗?如果我返回了这个引用类型的局部变量在外面接收它,它的计数就不为0,它就不会被回收吗?