如何删除Point结构的值?

maj*_*aja 1 c# struct

我正在使用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结构替换为自定义结构,这是不理想的.有任何想法吗?

Pat*_*man 5

Point是一个结构,因此它总是有一个值.您可以选择分配Point.Empty或使用可空类型:

Point? p = null;
Run Code Online (Sandbox Code Playgroud)