C# 中的匿名类型

2023-11-22

// x is compiled as an int 
var x = 10;

// y is compiled as a string 
var y = "Hello";

// z is compiled as int[] 
var z = new[] { 0, 1, 2 };

but

// ano is compiled as an anonymous type 
var ano = new { x1 = 10, y1 = "Hello" };

ano创建的对象的属性是只读的。我想弄清楚为什么这些属性是只读的。建议表示赞赏?

EDIT:

var ano1 = new { x1 = 10, y1 = "Hello" };

var ano2 = new { x1 = 10, y1 = "Hello" };

如果新的匿名类型以相同的顺序具有相同数量和类型的属性,那么它是否与第一个具有相同的内部类型?


var并不意味着“使用匿名类型”,它的意思是“编译器,帮我找出类型!”。在前三种情况下,类型实际上是“命名”类型 -System.Int32, System.String, and System.Int32[](在最后一种情况下,编译器还根据放入初始值设定项中的数组元素的类型推断出数组元素的类型)。

最后一种情况是唯一使用匿名类型的情况。 C# 的匿名类型是有意设计的不可变的。首先将它们添加到语言中的主要情况是引入 LINQ,在生成匿名类型的情况下它不需要可变性。一般来说,不可变的类往往会给设计者带来更少的问题,特别是在涉及并发时,因此该语言的设计者决定使用不可变的匿名类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中的匿名类型 的相关文章

随机推荐

  • 鼠标悬停时播放 Gif 并在鼠标移开时暂停 Gif 而不替换图像?

    我正在尝试寻找一个代码示例 该示例允许用户在鼠标悬停时制作 gif 动画 并在鼠标移出时暂停 我看过很多教程都在谈论这个 但我想要不同的效果 我注意到大多数 GIF 在鼠标移开时都会 重置 也就是说 要么 gif 被通用图像覆盖 要么动画恢
  • 实时模板匹配 - OpenCV、C++

    我正在尝试使用模板来实现实时跟踪 我希望每一帧都更新模板 我所做的主要修改是 1 将模板匹配和minmaxLoc分成单独的模块 即 TplMatch and minmax 函数 分别 2 内部track 函数中 select flag 始终
  • gcov 可以处理共享对象吗?

    我最近使用 gcov 来收集代码覆盖率信息 gcov 与可执行应用程序配合得很好 但是当我尝试加载 so 文件时 出现此错误 未知符号 gcov merge add 然后我在谷歌上搜索 有人说添加 lgcov 到链接标志 LDFLAGS 我
  • 在 Excel 2019 中应用 IRibbonUI.ActivateTab

    我有现有的 VBA 代码 我的 在 Excel 2010 中工作 可激活自定义功能区选项卡 IRibbonUIObjectName ActivateTab tabID 该代码作为子程序中的标准操作存在 用于处理活动窗口的更改 在相关时激活选
  • Node.js setInterval() 在 25 天后停止执行

    在我的 Node js 应用程序中 我使用setInterval 每 1 小时运行一次特定功能 该函数正常执行大约 25 天 然后计时器停止触发 25 天似乎非常接近 Node js 的时间TIMEOUT MAX 2 31 毫秒 25 天
  • ASP.net MVC 中的自定义表单身份验证/授权方案

    我正在尝试使用表单身份验证在 ASP NET MVC 中创建自定义身份验证方案 我的想法是 我可能会在网站上有不同的区域进行管理 批准者区域和一般用户区域 并且这些区域将使用不同的登录页面 等等 这就是我想要发生的事情 用户访问受限页面 现
  • 仅显示 UIView 的角点

    如何只显示 UIView 的角点 let view UIView view layer borderColor UIColor white cgColor view layer borderWidth 2 let maskframe UIV
  • Firebase Cloud Function 已完成,状态为:“响应错误”

    我有一个云函数 它返回大量数据 50 000 个文档 作为对象 当我运行它时 我收到错误finished with status response error 仅当我导出所有数据时才会发生这种情况 当应用限制 最多 20 000 时 它可以
  • Swift 中的dispatch_once 示例

    有没有例子说明如何调度一次应该在 Swift 中使用吗 最好是苹果公司的 注意 在这种情况下 我不将其用于单例 我想运行任意代码一次 Update 我主要对在实例方法中使用此方法时推荐的约定感兴趣 但为了完整性起见 在类方法 函数和全局上下
  • 应用程序报告需要很长时间才能更新

    应用程序报告和电源管理报告需要大量时间来刷新 我注意到我的设备电池电量为 88 但在电源管理报告中电池电量仍然为 40 此外 当我更新设备上的应用程序时 应用程序报告花了很多时间才能获取更新的版本代码 有什么方法可以从设备获取最新报告吗 我
  • 从 scapy 数据包中获取信息字符串

    我在我正在构建的工具中以非交互方式 即作为库 使用 scapy 2 3 1 dev 我想获取有关数据包的一串人类可读的信息 例如您从scapy all Packet show 我尝试过使用所有三种方法 packet show packet
  • SQL Server BCP:如何在所有字段周围加引号?

    我有这个 BCP 命令 bcp DBName vieter out c test003 txt c T t S SERVER 我得到的输出 CSV 不会在字段名称周围加上引号 而是将其放在逗号周围 我怎样才能得到 t 在所有字段周围加上引号
  • Java:从日期获取月份整数

    如何从 Date 对象中获取整数月份 java util Date java util Date date new Date Calendar cal Calendar getInstance cal setTime date int mo
  • 如何从 Tkinter 窗口立即停止 Python 进程?

    我有一个 Python GUI 用来测试我工作的各个方面 目前我有一个 停止 按钮 可以在每个测试结束时终止进程 可以设置多个测试同时运行 但是 有些测试需要很长时间才能运行 如果我需要停止测试 我希望它立即停止 我的想法是使用 impor
  • scrapy使用CrawlerProcess.crawl()从脚本将custom_settings传递给spider

    我正在尝试通过脚本以编程方式调用蜘蛛 我无法使用 CrawlerProcess 通过构造函数覆盖设置 让我用默认的蜘蛛来说明这一点 用于从官方 scrapy 网站抓取引号 最后一个代码片段位于官方 scrapy 引用示例蜘蛛 class Q
  • 导出类的公共属性在 TypeScript 中使用私有类型错误

    C dev OpenCMS Website Frontend Scripts libs sinnovations gt tsc sinnovations listv iewbase ts module amd C dev OpenCMS W
  • 如何将 Enter 键绑定到 tkinter 按钮

    我正在尝试绑定回车键 with a button 在下面的代码中 我试图从条目小部件中获取条目 当按钮bt被按下 它调用enter 获取条目的方法 我还希望通过按回车键 我没有得到想要的结果 在条目小部件中输入的值不会被读取 并且enter
  • 如何在 Kubernetes 中从工作节点找到主节点

    我需要知道我当前的工作节点连接到哪个主节点 我可以通过在主节点中输入 kubectl getnodes 命令来查看工作节点 但我需要从工作节点本身找到主节点 简单来说 kubernetes集群中如何从worker节点找到master节点 您
  • 如何记录 Spring Data JPA 存储库方法的执行时间?

    我有简单的 Spring Data JPA 存储库 public interface UserRepository extends JpaRepository
  • C# 中的匿名类型

    x is compiled as an int var x 10 y is compiled as a string var y Hello z is compiled as int var z new 0 1 2 but ano is c