C# 尝试取消对除系统类型之外的用户定义类型的无效指针的引用

C# 尝试取消对除系统类型之外的用户定义类型的无效指针的引用,c#,pointers,C#,Pointers,我需要能够取消对空指针的引用,以便在我正在开发的游戏中使用电报类型的系统。空指针的原因是我需要一种方法,能够将用户定义的类型或系统类型作为额外数据(任何类型的数据,这样我就不必构建多个函数)传递到将消息发送到游戏中其他组件的函数中 我之所以使用电报系统,是为了让游戏组件一心一意,但能够通过发送枚举消息类型和与该消息类型相关的数据,相互告知他们可能需要做的事情 由于我的游戏是纸牌游戏,我将举一些例子说明我为什么要这么做: 示例1:所玩的牌需要对所选目标造成2点伤害,因此会向目标发送TakeDama

我需要能够取消对空指针的引用,以便在我正在开发的游戏中使用电报类型的系统。空指针的原因是我需要一种方法,能够将用户定义的类型或系统类型作为额外数据(任何类型的数据,这样我就不必构建多个函数)传递到将消息发送到游戏中其他组件的函数中

  • 我之所以使用电报系统,是为了让游戏组件一心一意,但能够通过发送枚举消息类型和与该消息类型相关的数据,相互告知他们可能需要做的事情

  • 由于我的游戏是纸牌游戏,我将举一些例子说明我为什么要这么做:

  • 示例1:所玩的牌需要对所选目标造成2点伤害,因此会向目标发送TakeDamage(枚举消息类型)和值2的消息

  • 示例2:玩一张牌,给目标一个新的能力,因此它会向目标发送可添加性(枚举消息类型)和可添加能力(这将是一个包含该能力如何反应和不反应的类)的消息

  • 还有一个问题,如果我不能用空指针来做这件事,有没有其他方法不用空指针来做这件事


    • 好的。在读入对象并使用我的消息传递系统执行一个小测试程序后,我可以使用对象而不是空指针。当我问这个问题时,我不知道object(对C#来说还是个新手)。

      如何取消对空指针的引用?一个
      void
      有多少字节?根据我所读的内容,可以通过将一个void指针强制转换为一个系统类型指针,然后取消对该指针的引用来取消对它的引用。示例是指向双精度的空指针。您可以将void指针强制转换为双指针,然后使用解引用操作符获取值。如果您已经阅读了void指针,那么您就不是真正在阅读C#。不如传递一个
      对象
      ?一旦你取消了对指针的引用,你打算用它做什么?我对C#和关键字以及它们能做什么和不能做什么还不熟悉。在取消引用指针之后,我要做的是获取它所指向的额外信息,无论接收到什么,消息都会根据发送的消息来处理它。在阅读了C中的object之后,我想我可以用它来做我需要做的事,而不是用一个空指针。