【发布时间】:2014-01-06 16:38:43
【问题描述】:
请查看以下代码。我无法纠正当我们创建名为 objStudent1 的类 Student 的对象时,我们设置了两个值 name 和 roll number 现在它包含该值
- 姓名:学生2
- 卷号:222
现在我们将这个对象作为参数传递给一个名为ChangeName的函数,这里参数的名称是objStudent2,我们再次设置相同的值,现在它保存了值
- 姓名:学生3
- 卷号:333
然后我们将objStudent2对象设置为空值。
在执行完整的函数ChangeName 后,它会打印在ChangeName 函数中设置的值,这些值是从对象objStudent1 打印出来的。
对数据成员所做的修改正在反映,但 null 并未反映在同一对象上的函数之外。
namespace TestApp
{
class Program
{
static void Main(string[] args)
{
Student objStudent1 = new Student();
objStudent1.Name = "Student2";
objStudent1.RollNumber = 222;
ChangeName(objStudent1);
System.Console.WriteLine("Name-" + objStudent1.Name);
System.Console.WriteLine("Roll Number-" + objStudent1.RollNumber);
System.Console.Read();
}
private static void ChangeName(Student objStudent2)
{
objStudent2.Name = "Student3";
objStudent2.RollNumber = 333;
objStudent2 = null;
}
}
class Student
{
public string Name = "Student1";
int _RollNumber = 111;
public int RollNumber
{
get { return _RollNumber; }
set { _RollNumber = value; }
}
}
}
请告诉我这里发生了什么!
我完全糊涂了!
【问题讨论】: