情况:我最近看到一篇文章,其中一位雇主要求入门级候选人解决一个复杂的参考问题(未显示),以及与堆栈和托管堆有关的问题。我花了一些时间来学习这些概念以供个人理解,但不知道这些被认为是“入门级”知识。作为与 CS 并列的 CIS 专业(我知道巨大的差异),这些概念没有被教授。
问题为什么开发人员会将一个对象引用分配给另一个引用?更简洁地说,为什么开发人员会像面试场景中描述的那样翻转数十个参考资料?这仅仅是测试主题理解的问题,还是这种“参考翻转”是“日常”开发中使用的一种做法?
using System;
namespace QuickConsoleTesting
{
class Program
{
static void Main()
{
//Instantiate two new Person objects on the heap
Person person1 = new Person() { Name = "Jim" };
Person person2 = new Person() { Name = "Todd" };
Person person3 = person1;
Person person4 = new Person() { Name = "Julie" };
//Flip-flop reference variables
person4 = person2;
person1 = person3;
//Display results
Console.WriteLine(person1.Name);
Console.WriteLine(person2.Name);
Console.WriteLine(person3.Name);
Console.WriteLine(person4.Name);
/* ======================================
* Results displayed: Jim, Todd, Jim, Todd
* ===================================== */
//Hold console window
Console.Read();
}//END OF MAIN
}//END OF PROGRAM
class Person
{
private string name = "";
public string Name
{
get { return name; }
set { name = value; }
}
}//END OF PERSON
}//END OF NAMESPACE