在线设定值

2024-04-26

有了 C# 中我们可以做的所有很棒的事情,我想知道我们是否可以做如下的事情:

  string totalWording =
  {
    if (isA)
      return "Value A";

    if (isB)
      return "Value B";

    if (isC)
      return "Value C";

    return "Default";
  };

所以这与 ?: 非常相似,除非你可以有超过 2 个可能的结果

string totalWording = isA ? "Value A" : "Default";

我可以很高兴地创建一个返回值的方法,但我非常喜欢能够立即看到简单的东西

private string GetTotalWording()
{
  if (isA)
    return "Value A";

  if (isB)
    return "Value B";

  if (isC)
    return "Value C";

  return "Default";
}

我想听听是否有人有我可以使用的好东西,或者我是否只是靠祈祷生活。

Edit:

还有 func 选项,我想这就是让我进入主题的原因,因为看起来你应该能够在声明值时直接使用函数..但这可能只是我

    Func<string> getTotalWording = () =>
    {
      if (isA)
        return "Value A";

      if (isB)
        return "Value B";

      if (isC)
        return "Value C";

      return "Default";
    };

使用三元运算符的重复。

string totalWording = isA ? "Value A" : (isB ? "Value B" : (isC ? "Value C" :  "Default"))

还有另一种方法,如果你只有可控数量的“如果”并且它们始终保持不变。创建一个带有字符串值的枚举。

以下答案基于 Stack Overflow 上的另一个答案 https://stackoverflow.com/a/1799401/7974050

您可以为这些语句创建一个带有描述的枚举。

public enum Values
    {
        [Description("Value A")] A,
        [Description("Value B")] B,
        [Description("Value C")] C,
        [Description("Value D")] D
    }

然后,您可以创建一个函数来获取枚举描述

private static string GetEnumDescription(string text)
{
    var valueAttribs = typeof(Values).GetMember(text)[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
    return ((DescriptionAttribute)valueAttribs[0]).Description;
}

然后你可以将它们用作

var variable = "A";

    string description = 
      (Enum.IsDefined(typeof(Values), variable)) ? 
          GetEnumDescription(variable) : "Default";

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

在线设定值 的相关文章

  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 引用的程序集自动由 Visual Studio 替换

    我有 2 个项目 一个可移植类库和一个常规单元测试项目 在可移植类库中 我使用 NuGet 来引用 Microsoft BCL 可移植包 它附带 2 个程序集 System Threading Tasks dll and System Ru
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l

随机推荐

  • 如何限制素材输入中的特殊字符

    我有一个材料输入控件 我在用户输入时限制了特殊字符 但是当在任何编辑器中键入一些单词并复制并粘贴带有特殊字符的单词时 这是不起作用的 我已经为此编写了指令以防止特殊字符 但是可以在复制粘贴中提供更好的解决方案限制 应用程序组件 html
  • 强连通分量有什么用?

    我发现了几种可以解释的算法how在有向图中找到强连通分量 但没有解释why你会想要这样做 强连通分量有哪些应用 您应该查看 Coursera 上 Tim Roughgarden 的算法简介课程 对于他所讨论的每一种算法 他都会解释其一些应用
  • 使用 Active Directory 验证 Sharepoint?

    只需要找到一种简单的方法来让 AD 进行身份验证作为 Sharepoint 站点的登录名 这相当快速和简单地开始吗 Thanks 对于 SharePoint 2007 请参阅此article http technet microsoft c
  • 更改 R 中函数的默认参数

    我正在跟进这个答案 https stackoverflow com a 62946040 7223434 我想知道是否有办法设置参数的默认值rug to FALSE和论证multiline to TRUE在生成的图中library effe
  • 在 :before 和 :after 上为每个元素声明“content”属性是否会带来巨大的性能问题?

    您可能知道 如果您愿意使用 before and or after伪元素没有在其中设置文本 您仍然需要声明content 使它们可见 我刚刚将以下内容添加到我的基本样式表中 before after content 所以我不必再进一步声明了
  • 移动设备上的全屏画布

    我创建了一个小型画布游戏 希望它能够在 PC 和移动设备上运行 在 PC 上 画布区域可以按预期工作 但在为移动设备设计时就会出现问题 有没有一种方法 CSS 或 javascript 可以让用户双击网站内的画布区域时变成全屏 除非画布足够
  • 如何有效地使用 python 中的空数据填充文件?

    我需要创建不包含数据的任意大小的文件 它们可能相当大 虽然我可以循环遍历并写入一个空字符 直到达到文件大小 但这看起来很难看 with open filename wb as f what goes here 执行此操作的有效 Python
  • 如何获取特定CSS列的内容

    对不起我的英语不好 我正在使用 css 多列布局 有没有办法获取特定列的内容 或者如何找到分隔列的字符串的索引 div class foo div
  • 读取列标题中具有多个分隔符的文件并在末尾跳过一些行

    我是新来的Python我想用pandas用于读取数据 我已经做了一些搜索和努力来解决我的问题 但我仍然在挣扎 提前感谢您的帮助 我有一个如下所示的 txt 文件 skip1 A1 A2 A3 A4 A5 A6 A7 A8 A9 1 2 3
  • 在 SIMD 操作上下文中,非压缩指令和压缩指令有什么区别?

    在 SIMD 操作上下文中 非压缩指令和压缩指令有什么区别 我正在阅读一篇关于优化 SSE 代码的文章 http www cortstratton org articles OptimizingForSSE php batch http w
  • M1 MacBook Pro 上的 Android Studio 无法使用 ABI armeabi-v7a 模拟系统映像

    我的 M1 Macbook Pro 上的 Android Studio 可以很好地模拟 ABI arm64 v8a 的所有系统映像 API 24 29 30 31 但是 它无法使用 ABI armeabi v7a 运行所有映像 例如 API
  • 使用 jquery 从 html 表格生成 Excel 工作表

    我想在用户单击按钮后生成 Excel 工作表 基本上我想做的正是这里讨论的 如何将 html 表格值传递到 Excel 工作表单元格 https stackoverflow com questions 6517106 how to pass
  • 电源外壳。编辑字符串使其成为驼峰命名法和帕斯卡命名法

    我的目标是知道这种文本如何 var1 my name is 转换为驼峰命名法 myNameIs 还有这个类型 var2 my Name is 转换为帕斯卡命名法 MyNameIs 不知道该怎么做 您可能会使用 NETTextInfo ToT
  • “子查询返回超过 1 个值”错误

    SELECT schoolname AS combinationschools CASE WHEN schoolname LIKE THEN SELECT value FROM dbo Split 6 9E 9M END AS school
  • 将字母与空格字符异或

    为什么将任何字母与空格字符进行异或会改变字母的大小写 是否有历史原因 即 a 异或 A F 异或 f 等 或者这只是巧合 假设字符是 ASCII 或 unicode 编码的 我确信通过改变一个位就可以改变这种情况是故意的 这将使早期的软件更
  • 将 const char* 转换为 NSString * 并转换回来 - _NSAutoreleaseNoPool()

    我正在尝试将 const char 转换为 NSString 然后将其转换回来 它有效 但我得到 NSAutoreleaseNoPool Object 0x100550a40 of class NSCFArray autoreleased
  • iOS6 中 UIButton 不显示文本

    我正在使用 iOS6 和 Xcode 4 5 我遇到了一些 UI 问题UIButton 一些按钮标题没有显示在我的视图中 在旧版本的 iOS 中 一切都按预期运行 请看下图 在模拟器上执行时不显示文本 按钮 我有一个类似的案例 我刚刚解决了
  • Pod 副本如何相互同步 - Kubernetes?

    我有一个带有 3 个副本的 MySQL 数据库 Pod 现在我正在一个 Pod 中进行一些更改 Pod 数据 而不是 Pod 配置 假设我要添加一张表 该更改将如何影响 Pod 的其他副本 我正在使用带有 3 个工作节点的 kubernet
  • 为什么 .NET/C# 不优化尾调用递归?

    I found 这个问题 https stackoverflow com questions 340762 which languages support tail recursion optimization关于哪些语言优化尾递归 为什么
  • 在线设定值

    有了 C 中我们可以做的所有很棒的事情 我想知道我们是否可以做如下的事情 string totalWording if isA return Value A if isB return Value B if isC return Value