Convert.ToInt32 和 (int) 有什么区别?

2023-11-25

以下代码会引发编译时错误,例如

无法将类型“string”转换为“int”

string name = Session["name1"].ToString();
int i = (int)name;

而下面的代码可以成功编译并执行:

string name = Session["name1"].ToString();
int i = Convert.ToInt32(name);

我想知道:

  1. 为什么第一段代码会生成编译时错误?

  2. 这两个代码片段有什么区别?


(int)foo只是一个强制转换Int32 (int在 C# 中)类型。这是内置于 CLR 中并要求foo是一个数字变量(例如float, long等)从这个意义上说,它与 C 中的强制转换非常相似。

Convert.ToInt32被设计为通用转换函数。它比铸造有更多的作用。也就是说,它可以从any原始类型到 aint(最值得注意的是,解析string)。您可以查看此方法的重载的完整列表在 MSDN 上.

And as 斯特凡·施泰格提及在评论中:

另外,请注意,在数字层面上,(int) foo截断foo (ifoo = Math.Floor(foo)), 尽管Convert.ToInt32(foo) uses 四舍五入到偶数(将 x.5 舍入到最接近的偶数,意思是ifoo = Math.Round(foo))。因此,结果不仅是实施方面的,而且是数字方面的not相同。

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

Convert.ToInt32 和 (int) 有什么区别? 的相关文章

  • 读取大文件并制作字典

    我有一个大文件 我需要读取它并从中制作字典 我希望这一切能够尽可能快 然而我的Python代码太慢了 这是一个显示问题的最小示例 首先制作一些假数据 paste lt seq 20000000 lt seq 2 20000001 gt la
  • C++0x 初始值设定项列表示例

    我想看看这个现有代码示例如何利用 C 0x 初始化列表功能 示例0 include
  • 静态 OpenCV 库中未定义的引用

    我有一个使用 OpenCV 3 1 的 C 项目 并且使用共享库可以正常工作 但现在我想使用静态库 位于项目目录中的文件夹中 来编译它 因为我希望能够在未安装 OpenCV 的情况下导出它 如果需要还可以编辑和重新编译 这次我重新编译了 O
  • 如何在 ASP.NET Core 6.0 Web API 项目中启用 cors?

    在我的 ASP NET Core 6 0 Web API 项目中配置了 CORS 但预检请求收到 http 405 错误 换句话说 不允许使用 HTTP OPTION 看起来 cors 没有启用 我见过的例子config EnableCor
  • C# 实体框架我们应该使用 POCO.Id 还是仅使用 POCO 设置关系?

    我在服务方法中遇到一种情况 将 POCO 分配为另一个 POCO 的子对象无法按预期工作 我正在使用实体框架 4 public void ChangeOrderCurrency Currency currency order Currenc
  • 打开位置设置页面或提示用户启用位置

    我一直在绞尽脑汁 徒劳地谷歌搜索 我正在尝试找到一种方法来提示用户通过直接进入设置页面或仅点击屏幕上的 是 来切换位置 我见过的所有代码似乎都不起作用 有人有有效的方法吗 一个详细的例子将不胜感激 谢谢 我对 Xamarin 开发非常陌生
  • PartialView Action 正在调用自身

    我有 MVC 应用程序 它用于从主视图 ProductMaster 将 ProductAreaGrid 列表显示为 PartialView 并且它将在局部视图内将 CreateProductArea 作为 PartialView 我的 Gr
  • 多个线程访问一个变量

    我在正在读的一本教科书中发现了这个问题 下面也给出了解决方案 我无法理解最小值怎么可能是 2 为什么一个线程不能读取 0 而所有其他线程都执行并写入 1 而无论是1还是2 最后写入的线程仍然必须完成自己的循环 int n 0 int mai
  • C# 反序列化过程中创建指向父对象的指针

    我有这样的课程 Serializable public class child public Parent parent Serializable public class Parent public List
  • 何时分离或加入 boost 线程?

    我有一个方法 大约每 30 秒触发一次 我需要在一个线程中包含它 我有一个可以从类外调用的方法 像 call Threaded Method 这样的东西会创建一个线程 该线程本身会调用最终的线程方法 这些是 MyClass 的方法 void
  • 这些工作队列标志意味着什么?

    在研究工作队列时 我遇到了内核中定义的工作队列标志和常量 我有以下我无法理解的疑问 这里的排水和救援到底是什么意思 WQ DRAINING 1 lt lt 6 internal workqueue is draining WQ RESCUE
  • 在 Windows 上使用 C/C++ 开发时省略 msvcr100.dll?

    是否可以在 Windows 上使用 C C 进行开发而不链接到 msvcr100 dll 我知道这是 Windows 的标准 c 库 但我想知道如果我没有安装 Visual Studio 或 Redistributable 软件包 我的计算
  • 使用 WinAPI 连接禁用的显示设备

    我的问题是启用禁用的监视器ChangeDisplaySettingsEx 我想这不是火箭科学 但经过一番挖掘后 它看起来仍然是不可能的 我找到了一种根据找到的 Microsoft 代码示例禁用所有辅助显示器的方法here https msd
  • 按 Enter 继续

    这不起作用 string temp cout lt lt Press Enter to Continue cin gt gt temp cout lt lt Press Enter to Continue cin ignore 或更好 in
  • 如何使用“路径”查询 XDocument?

    我想查询一个XDocument给定路径的对象 例如 path to element I want 但我不知道如何继续 您可以使用以下方法System Xml XPath Extensions http msdn microsoft com
  • 使用方法的状态模式

    我正在尝试使用方法作为状态而不是类来基于状态模式的修改版本来实现一个简单的状态机 如下所示 private Action
  • Web API 2.0 使用 pascalcase 模型接收驼峰式命名的 JSON 数据

    我正在尝试对我的 Web API 进行 PUT 调用 我在 WebApiConfig cs 中设置了以下内容 以处理以驼峰形式将数据发送回我的 Web 项目 config Formatters JsonFormatter Serialize
  • C# 和断点 - 这里有魔术师吗?

    我有这个 public static void ByLinkText string text for var i 0 i lt 50 i try Setup Driver FindElement By LinkText text Click
  • 有没有办法在 C# 中仅通过文件名查找文件?

    我们现在使用绝对路径或相对路径在 C 应用程序中查找文件 如果文件位于当前工作目录下或 路径 之一下 有没有办法仅通过名称查找文件 使用绝对路径不好 使用相对路径也不够好 因为我们可能通过重命名或移动项目文件夹来更改项目结构 如果我们的代码
  • 查找和替换正则表达式问题

    感谢这里对我其他问题的所有大力帮助 我开始掌握正则表达式 但我仍然对这个一无所知 我的代码是 StreamReader reader new StreamReader fDialog FileName ToString string con

随机推荐

  • 你可以使用 PL/Perl 中的库吗

    我只是好奇在编写 PL Perl 函数时是否可以有一个use My Lib 声明 或启用编译指示和功能 例如 use strict use feature switch 使用 PL Perl 时则不然 它限制了 require 和 use
  • 我应该使用 ImageMagick 的 PHP 扩展还是仅使用 PHP 的 Exec() 函数来运行终端命令?

    我需要对我网站上的用户上传的图像进行以下图像处理 调整图像大小 如果大于特定尺寸 将所有图像格式转换为 jpg 在所有图像的底部添加水印 我是否需要使用 MagickWand 或 iMagick 扩展 或者我可以直接在 PHP 的 exec
  • 为什么knitr无法找到framed.sty或kpsewhich?

    knit test2 rnw processing file test2 rnw gt gt gt gt gt gt gt gt gt gt gt gt gt 20 gt gt gt gt gt gt gt gt gt gt gt gt g
  • 在 Ruby 中将哈希数组转换为 ONE 哈希

    我有一个哈希数组 其数组看起来像这样 result id t gt 1 transcript t gt I am a transcript ONE id t gt 2 transcript t gt I am a transcript TW
  • OpenGL GLSL 采样器是否始终返回从 0.0 到 1.0 的浮点数?

    我创建了几个浮点 RGBA 纹理 glBindTexture GL TEXTURE 2D texid k glTexParameteri GL TEXTURE 2D GL TEXTURE MAG FILTER GL NEAREST glTe
  • Jquery - 加载动态内容时悬停效果不起作用 - 带有主题标签的 URI

    我目前正在一个网站上从事前端工作 我正在使用 jquery 来创建动态内容 我的问题是 当我输入我的 URI localhost jquery myfile 并且加载 index php 时 我的 jquery 脚本可以工作 但是当我单击导
  • 如何模拟对 url 的访问?

    我有一个用户提交订单的页面 在他们提交订单后 我想点击一个网址 http externalsite com id 12345 sessionid abc123 而不实际将它们重定向到外部页面 有没有办法做到这一点 当然 使用HttpWebR
  • 如何在 Windows 上安装 RedCloth?

    跑步时gem install RedCloth 在 Windows XP 上 我得到 Fetching RedCloth 4 2 8 gem 100 Temporarily enhancing PATH to include DevKit
  • 即时创建 zip,其中包含 csv 文件

    我正在尝试动态创建一个 zip 文件 其中包含一堆要从 servlet 返回的 csv 文件 这非常令人困惑 一点指导会很棒 以下是我需要以某种方式协同工作的代码块 output stream coming from httpRespons
  • Django - 避免在视图中重复代码的提示

    我正在从 PHP 背景转向通过 python 进行 Django 开发 主要是为了解决我认为最有意义的 MVC 或 MVT 尽管在这种模式中我开始注意到有很多重复的代码我的观点 例如 登录时我有关于我希望出现在每个页面上的用户的信息 尽管在
  • 在发布模式 Xamarin Android 中构建应用程序时,“链接程序集”任务意外失败问题

    尝试在 Xamarin Android 中构建应用程序发布模式时遇到以下问题 为什么会出现以及如何解决 严重性代码 说明 项目文件行源抑制状态错误 链接程序集 任务意外失败 Xamarin Android XamarinAndroidExc
  • 将多个 CSV 文件读入 Python Pandas Dataframe

    问题背后的一般用例是将多个 CSV 日志文件从目标目录读取到单个 Python Pandas DataFrame 中 以进行快速周转统计分析和图表 利用 Pandas 与 MySQL 的想法是全天定期进行数据导入或追加 统计分析 下面的脚本
  • 如何使用正则表达式验证中文输入?

    问题是我需要在客户端验证中将这种中文输入视为无效 当英文字符与汉字及空格混合的总长度 gt 10时 输入无效 假设 你的a你的a你的a你 或 你的你的你的你 长度为10 无效 但是 你的a你的a你的a 长度为9 就可以了 我使用 Javas
  • app.xaml.cs 中的依赖属性

    我是 WPF 新手 下面的问题对很多人来说可能看起来很愚蠢 请原谅我 如何在 app xaml cs 中创建依赖属性 事实上 我尝试创建它 下面的代码 public static DependencyProperty TempPropert
  • 烧瓶创建应用程序和设置单元测试

    所以我用这种方式设置了我的烧瓶 def create app config name app Flask name static folder designs UI template folder designs UI instance r
  • jQuery:查找部分类名[重复]

    这个问题在这里已经有答案了 我想看看是否 li 有一个特定的类 但问题是它们都是唯一的 但都包含一个常量字符串 unqID 我想检查一下是否 li li 有一个包含该字符串的类 如果不存在 则将新类添加到 li li 我知道如何查找元素是否
  • 如何调整 的宽度?

    我使用宽度属性作为 对于所有列 但在显示中 列没有调整 我可以通过这种方式进入吗 如果 请指导我实现我想要的列宽 您必须使用columnClasses属性并用逗号 分隔每个列样式 下面的代码示例展示了如何使用columnClassess属性
  • R--在字符串中添加前导零,没有固定的字符串格式

    我有一个专栏如下 9453 55489 4588 18893 4457 2339 45489HQ 7833HQ 如果数字少于 5 位 我想添加前导零 然而 有些号码最后有 HQ 有些没有 我确实检查了其他帖子 他们在 HQ 部分没有类似的问
  • 实体框架连接字符串问题

    我正在制作一个小库 DLL 来管理用户及其角色 权限 计划是能够将此 dll 添加到 MVC 项目中并能够操作用户 角色等 所有数据都驻留在 SQL 数据库中 我正在使用实体框架进行数据访问 因此 当我初始化一个新的 RoleManager
  • Convert.ToInt32 和 (int) 有什么区别?

    以下代码会引发编译时错误 例如 无法将类型 string 转换为 int string name Session name1 ToString int i int name 而下面的代码可以成功编译并执行 string name Sessi