我正在使用Windows Forms在C#中编写程序.我将myPoint声明为myForm的公共数据成员.我将foo声明为myForm的私有方法 (实际上它是一个click事件),在这个方法中我需要编写类似的东西:
if (myPoint.IsEmpty)
myPoint = new Point(//position);
else
{
//operation involving myPoint
myPoint = null; //WHICH RETURNS THE ERROR
}
Run Code Online (Sandbox Code Playgroud)
我得到错误:'Point'是一种不可为空的数据类型
我正在阅读有关动态内存管理的一些资料,但到目前为止我似乎没有找到任何关于此案例的内容.我唯一能想到的是将Point结构替换为自定义结构,这是不理想的.有任何想法吗?
Point是一个结构,因此它总是有一个值.您可以选择分配Point.Empty或使用可空类型:
Point? p = null;
Run Code Online (Sandbox Code Playgroud)