gpt4 book ai didi

c# - Nullable 与类似的自定义 C# 结构有何不同?

转载 作者:太空狗 更新时间:2023-10-30 00:03:14 24 4
gpt4 key购买 nike

Nullable micro-optimizations, part one , Eric 提到 Nullable<T>具有类似的用户定义类型无法实现的奇怪的装箱行为

C# 语言赋予预定义 Nullable<T> 的特殊功能是什么?类型?特别是那些无法在 MyNullable 上工作的类型。

当然,Nullable<T>有特殊的语法糖T? ,但我的问题更多是关于语义的。

最佳答案

我的意思是:不存在盒装可为 nullable 这样的东西。当你装箱 int , 你会得到一个盒装 int 的引用.当你装箱 int? ,您将获得空引用或对盒装 int 的引用.你永远不会得到盒装 int? .

您可以轻松制作自己的 Optional<T>结构,但您不能实现具有该装箱行为的结构。 Nullable<T>的特殊行为已融入运行时。

这个事实导致了一些奇怪的事情。例如:

仅供引用,还有其他方法可以让 Nullable<T>类型是“魔法”。比如虽然是struct类型,但是不满足struct约束。您无法创建自己的具有该属性的结构。

关于c# - Nullable<T> 与类似的自定义 C# 结构有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13980303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com