为什么对原始值使用表达式主体属性? [复制]

2024-01-06

表达式主体属性与直接属性声明相比有何优缺点?例如,使用有什么好处吗?

public string Foo => "Bar"

与简单地

public string Foo = "Bar"

我的理解是=>当值来自方法(例如 lambda 函数)时使用。如果该值是像字符串或整数这样的基元,为什么有人会使用表达式主体属性呢?


这两行代码之间有很多差异:

  1. 第一个是属性,第二个是字段。例如,您不能ref首先Foo.
  2. 该属性每次都会被求值并返回一个新对象,即使该对象是相同的字符串文字。该变量被评估一次,并且在使用时就被加载。 (请注意,写#1 的更好方法是public string Foo { get; } = "Bar";它也会被初始化一次,然后返回相同的值)。
  3. 第一个是只读的(它只是一个 getter),而第二个是可变变量,你可以写入它。更接近的等价物是public readonly string Foo = "Bar";甚至更好public static readonly string Foo = "Bar";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么对原始值使用表达式主体属性? [复制] 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 当用户在 scanf() 中输入错误的数据类型时如何修复无限循环?

    C初学者在这里 对于下面的程序 每当用户输入字符或字符串时 它就会进入无限循环 在仍然使用 scanf 的情况下如何解决这个问题 与使用 scanf 相比 编写该程序的更好方法是什么 感谢那些愿意回答的人 include
  • 在 MATLAB 中将频谱图保存为图像

    我正在使用以下方法分析一些声音片段spectrogram 函数于MATLAB 我想将频谱图保存为图像 jpg png 等 但无论我以什么图像格式保存图形 生成的图像总是与我在图中看到的不同 参差不齐 这是频谱图的示例 Matlab图 htt
  • 为什么我的基本 PyGame 模块这么慢?

    我计划在 Pygame 中编写代码 但我刚刚开始学习基础知识 发现执行代码非常慢 当我按下一个键时 它需要一段时间才能在终端中打印它 似乎没有任何模式 我正在运行Python 2 6 遇到这个问题后我降级了 通过进一步的测试我发现整个系统变
  • ProtoIninclude 添加了不需要的依赖项

    我刚刚在分布式缓存应用程序中用协议缓冲区替换了 NET 序列化 结果确实令人印象深刻 我唯一不喜欢的是 我需要在基本消息类及其子类之间添加依赖关系 这会创建循环依赖关系 除了用 ProtoInclude 标记基类之外 还有其他选择吗 In
  • C# 将文本文件分割成二维字符串数组

    我有一个如下所示的文本文件 John Gauthier blue May Henry Ford Red June James Bond Orange December 我想将它分成一个二维字符串数组 这样我就可以将每一行和每个单词分开 前任
  • 缓存失效——有通用的解决方案吗?

    计算机科学中只有两个难题 缓存失效和命名 菲尔 卡尔顿 是否有通用的解决方案或方法来使缓存失效 知道条目何时过时 以便保证您始终获得最新数据 例如 考虑一个函数getData 从文件中获取数据 它根据文件的上次修改时间对其进行缓存 每次调用
  • Rails、设计身份验证、CSRF 问题

    我正在使用 Rails 制作一个单页应用程序 登录和注销时 使用 ajax 调用 Devise 控制器 我遇到的问题是 当我 1 登录 2 注销然后再次登录时不起作用 我认为这与 CSRF 令牌有关 当我注销时 该令牌会被重置 尽管它不应该
  • symfony2 - 获取执行时间

    我想使用 symfony2 为我的应用程序制作一个状态页 我想在其中打印特定请求的执行时间 以及其他数据 无论如何我找不到这样做 我知道我可以通过以下方式跟踪代码部分的执行时间 starttime microtime do somethin
  • Mysql 带游标的存储过程

    Mysql游标问题 我编写了一个存储过程 它将从一个表中获取旅行记录并将其插入到 2 3 个不同的表中 使用插入语句 问题是我正在检查 table1 中是否不存在记录 然后我将记录从 temptable 顺序插入到 table1 table
  • PHP - 检查一个字符串是否是另一个字符串的旋转

    需要编写一个代码块来检查一个字符串是否是另一个字符串的旋转 看了这里的大量帖子 都是用 Java 或 C 写的 但我需要用 PHP 来做 我尝试了一些不同的方法 尝试使用 C 和 Java 示例 但我没有任何运气 这是我当前的代码
  • bx滑块启动/停止功能

    我正在使用 bxslider 插件 并为上一个和下一个功能创建了一些外部控件 尽管我似乎不知道如何对启动 停止控件执行相同的操作 基本上我想用它作为滑块的播放 暂停功能 有人有这个插件的经验吗 这是我到目前为止所拥有的 没有启动 停止功能工
  • 跨域图片上传 Angular+laravel

    我一直在努力在服务器上上传图像 我在用ng文件上传 https github com danialfarid ng file upload在前端 但我总是得到 对预检请求的响应未通过访问控制检查 请求的资源上不存在 Access Contr
  • 如何在 Ruby 中解析带有单引号 (') 的 JSON 字符串?

    我正在尝试解析这样的 JSON 字符串 JSON parse foo 42 但是 这会产生 JSON ParseError JSON ParserError 757 unexpected token at foo 42 from Users
  • 更新插入文档和/或添加子文档

    我一直在努力解决 MongoDB Mongoose 和 JavaScript 的异步特性以及如何最好地对集合进行多次更新 我有一张包含客户和联系人数据的 Excel 表格 有些客户端有多个联系人 每行一个 并且客户端数据是相同的 因此客户端
  • 运行 Leiningen 时出现 java.lang.NoSuchMethodError:clojure.lang.KeywordLookupSite

    我刚刚下载了 Leiningen 但无法运行它 下载自己的 Jar 存档后 脚本失败并出现 java 错误 通过跑步bash x lein我可以看到它挂在这一行 exec java Xbootclasspath a home andrea
  • 如何使用 Swift 构建 ScrollView?

    我正在构建我的第一个 IOS 应用程序 我正在努力寻找一种方法来使用 XCode6 上的 Swift 代码做一个简单的 ScrollView 请问有人可以帮助我找到解决方案吗 我的问题是我不知道如何使滚动视图在我的代码中工作 我已经将代码放
  • 通过 gdal 将多个频段合并在一起...正确

    我正在 python 中使用一些 Sentinel 2 卫星图像 现在我使用较新的 2016 年之前的 没有任何问题 但我需要使用 2016 年的一些 欧洲航天局没有以同样的方式对这些进行预处理 通常 当您下载图块时 您通常会获得每个卫星频
  • 计算字符串中前导空格的 pythonic 方法是什么?

    我知道我可以用这个来计算字符串中的前导空格 gt gt gt a foo bar baz qua n gt gt gt print Leading spaces len a len a lstrip Leading spaces 3 gt
  • 具有椭圆积分和贝塞尔函数的 Java/Scala 数学库?

    我正在寻找一个用于科学计算的数学库 以便在 Java Scala 中使用 特别是我需要完整的椭圆积分和修正的贝塞尔函数 如果它是开源的 我会很高兴 但我想我将不得不采用那里的任何东西 替换 scipy 用于科学计算的 python 库 会很
  • 为什么对原始值使用表达式主体属性? [复制]

    这个问题在这里已经有答案了 表达式主体属性与直接属性声明相比有何优缺点 例如 使用有什么好处吗 public string Foo gt Bar 与简单地 public string Foo Bar 我的理解是 gt 当值来自方法 例如 l