C# 问号运算符后缀进行强制转换

发布于 2024-11-28 12:50:27 字数 253 浏览 1 评论 0原文

我正在查看 dapper 页面,看到了这段简短的编码:

   new { Age = (int?)null, Id = guid });

什么(int?)null 可以吗?

有人可以解释一下那里发生了什么,也许可以给出更“详细”的代码版本吗?

I was looking at the dapper page and saw this terse bit of coding:

   new { Age = (int?)null, Id = guid });

What does (int?)null do?

Could someone please elucidate what is going on there, and perhaps give a more "verbose" version of the code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

回忆追雨的时光 2024-12-05 12:50:27

int?Nullable 的简写。因此,这行代码将 null (默认情况下为 object 类型)转换为 null int。

文档:http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx

int? is shorthand for Nullable<int>. as such this line of code is converting null (which by default is of type object) to a null int.

Docs: http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx

人间☆小暴躁 2024-12-05 12:50:27

如果您拥有的只是 new { Age = null },编译器无法知道 Age 的确切类型是什么。因此,将 null 转换为 Nullable 有效地告诉它 Age 属性属于该类型。

If all you have is new { Age = null }, compiler has no way of knowing what is the exact type of Age. So "casting" null to Nullable<Int32> effectively tells it that Age property is of that type.

盗琴音 2024-12-05 12:50:27

这是一个匿名类型年龄 必须从分配给它的值中隐含。 null 可以是任何可为空的类型。强制转换指定 Age 应具有的类型:int?(又名 Nullable

This is an anonymous type: The type of Age must be implied from the value assigned to it. null can be any nullable type. The cast specify the type that Age should have: int? (aka Nullable<int>)

回忆躺在深渊里 2024-12-05 12:50:27

? 标记 < code>Nullable int

它是 ((System.Nullable)null) 的语法简写。

? marks a Nullable int

It is a syntactical shorhand for ((System.Nullable<int>)null).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文