【发布时间】:2011-02-16 14:57:45
【问题描述】:
我在一个入门级程序员的面试中问了这样一个问题:
var instance1 = new MyObject{Value = "hello"}
var instance2 = instance1;
instance1.Value = "bye";
Console.WriteLine(instance1.Value);
Console.WriteLine(instance2.Value);
申请人以“你好”、“再见”作为输出。
我的一些同事说,“指针”不再那么重要,或者这个问题不是真正的能力评判。
他们说的对吗?
编辑:重点是 MyObject 可能是一个结构。这是一个好点。但是,我没有发布我向受访者提出的完整问题。完整的问题有一个显然是一个类(不是结构)的类。可以找到here。
【问题讨论】:
-
那些不是指针。这些是参考。
-
指针,也许不是。这是 LOB 开发人员通常不需要的低级内存管理。另一方面,参考文献是绝对关键的。
-
10 分的精彩信息!如果你不能这样做,那么“再见”
-
您应该在示例中明确说明
myObject是结构还是类,因为这会影响输出。另外,为什么要调用类型myObject? -
正如威尔指出的那样,这个问题是模棱两可的。您还隐含地假设 myObject 具有行为良好的 Value 属性,该属性不会在后续获取时返回不同的值。据我所知,程序的真正输出是“I'm”“evil”。