【发布时间】:2013-07-29 13:47:41
【问题描述】:
这个问题比任何事情都更令人好奇......
假设有这样一个类:
public class Foo{
public int? x {get; set;}
public int? y {get; set;}
}
并且在项目实例的某个地方创建了:
var foo1= new Foo
{
x= 1;
y= 1;
};
var foo2= new Foo
{
x= 1;
y= 1;
};
如果出于某种原因他们想检查是否彼此相等并将它们设置为NULL(如果它们是)并打印到屏幕...
例如:
if(foo1.x == foo2.x)
foo1.x = null;
if(foo1.y == foo2.y)
foo1.y = null;
if(foo1 == null){
Console.WriteLine("foo1 is NULL");
}else{
Console.WriteLine("foo1 is not NULL");
}
哪个会打印?
foo1 的实例存在,但它的所有对象都设置为NULL。我对可空类型的概念不熟悉,所以这引起了我的好奇心! (我的 Visual Studio 处于崩溃状态,否则我会测试自己)
【问题讨论】:
-
你运行它看看会发生什么?
-
@Jedediah 我不能。我的 Visual Studio 停止工作。 (如上所述)
-
如果您的开发工具包停止工作,去修复它 ;p 这比学术问题更重要
-
@MarcGravell 我正在修复它! :)