C#(int)中Convert、Parse、TryParse的区别
Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse、(int) 四者都可以解释为将类型转换为 int,那它们的区别是什么呢?
Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32 内部调用了 int.Parse:
Convert.ToInt32 参数为 null 时,返回 0;
int.Parse 参数为 null 时,抛出异常。
Convert.ToInt32 参数为 "" 时,抛出异常;
int.Parse 参数为 "" 时,抛出异常。
Convert.ToInt32 可以转换的类型较多;
int.Parse 只能转换数字类型的字符串。
int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0。
(int) 属 cast 转换,只能将其它数字类型转换成 int 类型,它不能转换字符串,比如下例就会失败:
代码如下:
string v = "1";
int n = (int)v;
int id = 1;
int.TryParse(Request.QueryString["id"], out id);
如果 QueryString 传入的 id 值为整数,那么 id 变量值就是该数值,如果传入的不是整数,那么 id 变量值就是 0(不是初始值 1)。
相关推荐
-
C#(int)中Convert、Parse、TryParse的区别
Convert.ToInt32.int.Parse(Int32.Parse).int.TryParse.(int) 四者都可以解释为将类型转换为 int,那它们的区别是什么呢?Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32 内部调用了 int.Parse:Convert.ToInt32 参数为 null 时,返回 0:int.Parse 参数为 null 时,抛出异常.Convert.ToInt32 参数为 "" 时,抛出异常:
-
javascript中JSON.parse()与eval()解析json的区别
本文实例讲述了javascript中JSON.parse()与eval()解析json的区别.分享给大家供大家参考,具体如下: JSON(JavaScript Object Notation)是一种轻量级的数据格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是Javascript原生格式,这意味着在javascript中处理JSON数据 基本格式: varjsonData='{"data1":"Hello,","data2"
-
C#中Convert.ToString和ToString的区别分析
本文实例分析了C#中Convert.ToString和ToString的区别,对于初学者来说是很有必要加以熟练掌握的.具体分析如下: 1.Convert.ToString能处理字符串为null的情况. 测试代码如下: static void Main(string[] args) { string msg = null; Console.WriteLine(Convert.ToString(msg)); Console.ReadKey(); } 运行,没有抛出异常. 2.ToString方法不能
-
C#中is与as的区别分析
本文实例分析了C#中is与as的区别,分享给大家供大家参考.具体分析如下: 一.C#类型的转换 在c#中类型的转换分两种:显式和隐式,基本的规则如下: 1.基类对象转化为子类对象,必须显式转换,规则:(类型名) 对象. 2.值类型和引用类型的转换采用装箱(boxing)或拆箱(unboxing). 3.子类转化为基类对象. 4.基本类型互相之间转化可以用Covent类来实现. 5.字符串类型转换为对应的基本类型用Parse方法,除了String类型外其他的类型都可以用Parse方法. 6.用Ge
-
详谈python中冒号与逗号的区别
注意if\while\for等(或函数定义)语句在结尾处包含一个冒号--我们通过它告诉python下面跟着一个语句块. --------------冒号的用法 if guess == number: print 'Congratulations, you guessed it.' # New block starts here print "(but you do not win any prizes!)" # New block ends here elif guess < c
-
基于Keras中Conv1D和Conv2D的区别说明
如有错误,欢迎斧正. 我的答案是,在Conv2D输入通道为1的情况下,二者是没有区别或者说是可以相互转化的.首先,二者调用的最后的代码都是后端代码(以TensorFlow为例,在tensorflow_backend.py里面可以找到): x = tf.nn.convolution( input=x, filter=kernel, dilation_rate=(dilation_rate,), strides=(strides,), padding=padding, data_format=tf_
-
详解C++中typedef 和 #define 的区别
1.执行上不同 关键字 typedef 在编译阶段有效,由于是在编译阶段,因此 typedef 有类型检查的功能. #define 则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单而机械的字符串替换,而不进行任何检查. 例如:typedef 会做相应的类型检查 typedef unsigned int UINT; void func() { UINT value = "abc"; // error C2440: 'initializing' : cannot convert
-
详解Java中Callable和Future的区别
目录 Java中为什么需要Callable Callable和Runnable的区别 Future和RunnableFuture 不使用Callable和Future,仅使用Runnable实现相同功能 Java中为什么需要Callable 在java中有两种创建线程的方法: 一种是继承Thread类,重写run方法: public class TestMain { public static void main(String[] args) { MyThread t1 = new MyThre
-
C++ 中引用与指针的区别实例详解
C++ 中引用与指针的区别实例详解 引用是从C++才引入的,在C中不存在.为了搞清楚引用的概念,得先搞明白变量的定义及引用与变量的区别,变量的要素一共有两个:名称与空间. 引用不是变量,它仅仅是变量的别名,没有自己独立的空间,它只符合变量的"名称"这个要素,而"空间"这个要素并不满足.换句话说,引用需要与它所引用的变量共享同一个内存空间,对引用所做的改变实际上是对所引用的变量做出修改.并且引用在定义的时候就必须被初始化. 参数传递的类型及相关要点: 1 按值
-
Linux C中sockaddr和sockaddr_in的区别
Linux C中sockaddr和sockaddr_in的区别 struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址. 在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体. 网络中的地址包含3个方面的属性: 1 地址类型: ipv4还是ipv6 2 ip地址 3 端口 相应的,头文件有如下定义: include <netinet/in.h> struct sockaddr { unsigned short sa_family;
随机推荐
- win2000/winXP 停止打印的bat
- 使用设计模式中的Singleton单例模式来开发iOS应用程序
- java之super关键字用法实例解析
- 使用Swift实现iOScollectionView广告无限滚动效果(DEMO)
- 详解jQuery事件
- JavaScript 里的类数组对象
- Mysql数据库错误代码中文详细说明
- JavaScript 事件监听实例代码[兼容IE,firefox] 含注释
- phpize的深入理解
- javascript面向对象之共享成员属性与方法及prototype关键字用法
- e是自然对数的底 e.vbs
- C++ 中assert()函数用法总结
- JavaScript设置获取和设置属性的方法
- c#根据网址抓取网页截屏生成图片的示例
- Android实现文件解压带进度条功能
- Java自定义协议报文封装 添加Crc32校验的实例
- 基于RabbitMQ几种Exchange 模式详解
- GitHub 热门:别再用 print 输出来调试代码了
- java实现数字猜拳小游戏
- java配置变量的解释,搬运他人优质评论(推荐)