为什么 typeof(int).ToString() 不是常量?

2024-02-22

我正在尝试这样做:

const string intType = typeof(int).ToString();
switch (typeof(MyT).ToString())
{
    case intType:
    {
        return "int";
        break;
    }
    ...
}

但编译器说:

错误CS0133:分配给“intType”的表达式必须是常量

我所知,typeof运算符在编译时工作。那么,出了什么问题呢?


据我所知,typeof 运算符在编译时工作。

你不know那是因为知识必须true。你从哪里得到这个想法typeof是在编译时执行的吗?它产生一个非常量对象。然后就不能保证ToString每次运行时不会产生不同的字符串,因此它也不能被视为常量。

那么,出了什么问题呢?

你是根据错误的信念进行推理的。

C# 规范清楚地描述了表达式成为编译时常量必须满足的条件。这些条件包括不包含任何内容的表达式typeof运算符或方法调用。

但这里还有更大的问题。我假设MyT是泛型类型参数,这意味着您正在尝试打开泛型类型参数的值。这几乎总是错误的做法。

你到底想做什么?你真正想解决什么问题?因为到目前为止您所显示的这段代码表明您正在走一条毫无成效的道路来解决真正的问题。

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

为什么 typeof(int).ToString() 不是常量? 的相关文章

随机推荐

  • 替换 rxjs6 中的 share() 函数

    我正在尝试让我的应用程序可以使用已登录用户的详细信息 我有以下代码 它在 Angular 5 中工作 但在 Angular 6 中不起作用 因为 rxjs 6 中缺少 share 函数 我需要 share 函数吗 对于 rxjs 6 的更改
  • Get 方法的大小

    对于 Get 的代码行大小是否有任何指导原则或普遍共识 我在一个成员上有一个 Get 方法 这里很容易就增长到 30 行代码 我不确定在什么时候应该将其提取到方法中 但随后我只会将其称为 GetMyString 之类的名称 并将该值分配给另
  • 如何使用 Gmail API“插入”“完整”格式的邮件?

    我已经通过使用成功克隆了 原始 格式的消息get with format raw 并像这样重新插入 params userId me id msg id format raw mesg service users messages get
  • Flutter Firebase:当前用户从子集合中获取数据

    当前用户如何仅访问他在子集合中的数据 Stream
  • 生成一个 numpy 数组,其中包含总和小于给定数字的所有数字组合

    有几个在 Python 中使用 numpy 生成所有组合数组的优雅示例 例如这里的答案 使用numpy构建两个数组的所有组合的数组 https stackoverflow com questions 1208118 using numpy
  • 在 Safari 中,我认为 IE7 和 8 Math.random() 也不是随机的?

    http koreanwordgame com http koreanwordgame com 此页面首先通过 Ajax 将 4 个单词加载到选项 DIV 中 然后使用以下函数随机化正确答案 传递包含要随机化的元素的 DIV 作为参数 va
  • 如何在 AngularJS 的指令单元测试中注入服务

    我需要测试一个对某些注入服务进行调用的指令 以下代码是一个示例指令 它侦听事件 并在指定元素内按下 Enter 键时重定向浏览器 Edit 我感觉我可能正在涉足端到端测试领域 angular module fooApp directive
  • 模板类的可变成员函数

    我面临一个问题 我试图使用特定类型的参数包创建可变成员函数 template
  • Chrome 设备模式

    Chrome 现在有一个非常有用的 设备模式 可用于预览网页 因为它可能会出现在许多设备上 很有用 我想知道 有没有办法通过从页面本身运行的 JS 进入 退出设备模式 对于我所做的一些事情 让人们在不同设备上预览屏幕会很方便 而无需解释他们
  • 错误:断言失败:!_debugDuringDeviceUpdate 不是 true flutter

    当我在 flutter web 项目中添加一些小部件 如 ListView 时遇到此错误 我以前在使用 android 时从未遇到过这个问题 Exception has occurred Error Assertion failed fil
  • 与 lambda 不同()?

    是的 所以我有一个可枚举的值 并希望从中获得不同的值 Using System Linq 当然 有一个扩展方法叫做Distinct 在简单的情况下 它可以不带参数使用 例如 var distinctValues myStringList D
  • 在git中删除远程分支:一劳永逸地理解它

    我今天在这里发帖的原因是因为我在命令行上看到的行为与我实际在网上阅读的行为不同 所以这让我很困惑 这里有问题的两个命令是 git branch r d origin topic1 and git push origin topic1 到目前
  • 引导程序。如何只为手机屏幕添加下边距?

    我有这个 HTML 代码 div class row div class col xs 12 div class titulo h2 class title section font switch Algunos tecnologias q
  • 如何在Java中读取多行输入

    我们的教授正在让我们用 Java 进行一些基本编程 他提供了一个网站以及用于注册和提交我们的问题的所有内容 因为今天我需要做这个示例 我觉得我走在正确的轨道上 但我就是做不到弄清楚剩下的事情 这是实际的问题 Sample Input 10
  • Angular 2 ADAL 令牌刷新,用于隐式流程(使用“adal-angular4”)

    似乎没有实用的方法来刷新隐式流中的令牌 有人能够实现这一目标吗 MS 文档建议在 Iframe 中进行刷新 寻找有关在 adal ng2 或 adal js 中调用哪些方法的建议 编辑 我正在使用这个库https github com be
  • 如何从 Amplify 获取与 API 网关和 cognito 配合使用的访问令牌?

    我正在尝试从 Amplify 使用 Vue 获取正确的令牌 以使用 Cognito 登录 API 网关 到目前为止我尝试过这些 Auth currentSession then data gt console log idToken s d
  • Meteor 帐户自动登录模式?

    我正在考虑使用手机号码注册系统 人们可以使用手机号码注册并收到短信来验证他们是否存在 此时我想让他们自动登录而无需密码 短信基本上就是密码 这是以 Lyft 应用程序注册为模式的 不需要用户名 密码等 但对于我的一生 我不知道如何做到这一点
  • 从核心音频框架开始

    对于我打算很快开始的项目 我需要播放压缩和未压缩的音频文件 为此 我打算使用 Core Audio 框架 然而 我之前没有音频编程经验 我真的不知道从哪里开始 是否有任何初学者级别的资源或示例项目可以演示如何使用 Core Audio 构建
  • Java 不允许泛型类使用内部类数组

    我知道您无法创建泛型类型的数组 而是必须诉诸黑客 鉴于 Java 支持泛型数组 只是不支持它们的创建 我不清楚为什么 hack 比支持创建泛型数组的 Java 更好 而不是写这个 Map Entry
  • 为什么 typeof(int).ToString() 不是常量?

    我正在尝试这样做 const string intType typeof int ToString switch typeof MyT ToString case intType return int break 但编译器说 错误CS013