c# - 如何删除Point结构的值?

标签 c# struct

我正在使用 Windows 窗体在 C# 中编写程序。我将 myPoint 声明为 myForm 的公共(public)数据成员。我将 foo 声明为 myForm 的一个私有(private)方法 (实际上它是一个点击事件),在这个方法中我需要写这样的东西:

if (myPoint.IsEmpty)
    myPoint = new Point(//position);
else
{
    //operation involving myPoint
    myPoint = null; //WHICH RETURNS THE ERROR
}

我收到错误:'Point' 是不可为 null 的数据类型

我正在阅读一些关于动态内存管理的 Material ,但到目前为止我似乎没有找到任何关于这种情况的信息。我唯一能想到的就是将 Point 结构替换为自定义结构,这并不理想。有什么想法吗?

最佳答案

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

Point? p = null;

关于c# - 如何删除Point结构的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36404112/

相关文章:

c# - NHibernate 不同 session 间数据不一致

c - 在其字段中声明指向结构的指针

c++ - 需要帮助理解结构,以及一些程序错误

C struct 语法的说明

c - 指向结构指针成员的指针

C# 将字符串拆分为多个字符

c# - 活体瓷砖的正确使用方法?

c# - 元素属性语法和属性属性语法在语义上有区别吗?

c - 内存中的结构赋值和持久化(C语言)

c# - 查找图表中点的值