背景:我有一个用 C# (2005) 编写的自定义类,其代码类似于以下内容:
public class Savepoint
{
public int iOffset; /* Starting offset in main journal */
public u32 nOrig; /* Original number of pages in file */
public u32 iSubRec; /* Index of first record in sub-journal */
};
在使用Savepoint sp; 声明变量后,我可以测试是否已使用类似于以下的代码实例化:
if (sp != null) {...}
问题:是否有可能以某种方式重载类运算符,以便我也可以使用以下语法:if (sp) {...} 或if (sp != 0) {...}
PS:除了习惯的力量,我没有真正好的理由想写 if (sp)。
最佳答案
您可以使用默认属性装饰器在 C# 中执行此操作,但您不应该这样做。尝试将 C# 编写成鸭子类型的语言会导致各种认知失调。
根据经验,接受您正在使用的语言的方言是个好主意,而不是试图将它塞进一个更熟悉的形状,它从来没有打算拥有。
关于c# - 如何编写 C# 类来测试 0 和 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/595943/