.NET中变量的类型问题
1.JAVA和C# Byte的不同。
java里一个byte取值范围是-128~127, 而C#里一个byte是0~255.
首位不同. 但是底层I/O存储的数据是一样的,
比如, 十进制的100, 转换成java或者c#的byte, 都是1100110.
但是, 使用java的getBytes()方法, 得到的是负数,即: -100110
使用C#的getBytes(),得到的是正数.1100110.
这在底层socket传输应该注意.
2. 取值范围比较
log>int>short>byte;
double>float
3. 隐式转化 和 显式转换
隐式转换: 当小范围的类型 向 大范围的类型转换时。
int a =5;
long b = a; //发生了隐式转换
显式转换: 当大范围的类型 向 小范围的类型转换时,必须显式转换。
double a =0.1;
float b =(float )a;//这里必须显式转换一下。
PS:值类型之间互相引用,方式是拷贝一个副本。所以存在转换的问题。
4. 加一个F(两个整数运算时,返回一定还是整数。)
float变量 后面最好加一个F
整数常量在参与运算,最好在末尾加一个F。
防止精度丢失
5.字符串的转意字符
1)字符串中 \ 标示他后面的字符具有特殊含义。当我们想输出 \ " 等 字符时,在前面使用\进行转意。
2)在字符串前面 加@,强制不转义!
6.各种类型的最大值、最小值。
int:最大值int.MaxValue ;最小值: int.MinValue,其他数值类型也可以通过MaxValue、MinValue获取取值范围。
7.类型转换问题
显式类型转换仅限整数、小数类型之内。
其他数据类型转换为string:
1) .ToString()/推荐:(其他类型没有)
2) Convert.ToString() 。
3) string.prese()
8.Convert 与 prese的区别 还有 int.TryParse
1)名字不同(这条是扯淡)
2)Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32 内部调用了 int.Parse:
3)Convert.ToInt32 参数为 null 时,返回 0;
int.Parse 参数为 null 时,抛出异常。
4)Convert.ToInt32 参数为 "" 时,抛出异常;
int.Parse 参数为 "" 时,抛出异常。
5) Convert.ToInt32 可以转换的类型较多;
int.Parse 只能转换数字类型的字符串。
6)int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,
转换成功返回 true,转换失败返回 false。
最后一个参数为输出值,如果转换失败,输出值为 0。
.NET中变量的类型问题的更多相关文章
- Kotlin中变量不同于Java: var 对val(KAD 02)
原文标题:Variables in Kotlin, differences with Java. var vs val (KAD 02) 作者:Antonio Leiva 时间:Nov 28, 201 ...
- java中变量命名和引用变量的一个坑
这次有两个主题,第一个太简单啦,就是java中变量的命名规则,纯记忆性东西.第二个主题,就是讨论一下对象引用变量的一个注意点.
- mysql中变量赋值
http://www.cnblogs.com/qixuejia/archive/2010/12/21/1913203.html sql server中变量要先申明后赋值: 局部变量用一个@标识,全局变 ...
- JavaScript中变量和函数声明的提升
现象: 1.在JavaScript中变量和函数的声明会提升到最顶部执行. 2.函数的提升高于变量的提升. 3.函数内部如果用var声明了相同名称的外部变量,函数将不再向上寻找. 4.匿名函数不会提升. ...
- JavaScript 中变量、作用域和内存问题的学习
这是我学习JavaScript的第二篇文章,之前做过几年的Java开发,发现JavaScript虽然也是面向对象的语言但是确实有很多不同之处.就本篇博客,主要学习总结一下最近学习到的JavaScrip ...
- Python中变量的作用域(variable scope)
http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 #!/usr/bin/ ...
- C/C++——C++变量的作用域与生命周期,C语言中变量的作用域和生命周期
全局变量 作用域:全局作用域(全局变量只需在一个源文件中定义,就可以作用于所有的源文件.) 生命周期:程序运行期一直存在 引用方法:其他文件中要使用必须用extern 关键字声明要引用的全局变量. 内 ...
- Keil C51中变量的使用
引言 8051内核单片机是一种通用单片机,在国内占有较大的市场份额.在将C语言用于51内核单片机的研究方面,Keil公司做得最为成功.由于51内核单片机的存储结构的特殊性,Keil C51中变量的使用 ...
- Objective-C中变量采用@property的各个属性值的含义
我们在OC中定义变量,可以自己来定义变量的setter方法来设置变量值,用getter方法来获取变量值.但是当变量数量增多时,还采用手动添加setter/getter方法来操作变量,就会使得程序代码量 ...
随机推荐
- Linux内核学习笔记
1.vanbreaker的专栏 2.LinuxKernel Exploration 3.DroidPhone的专栏 4.Linux内核研究以及学习文档和ARM学习以及研究的开放文档 [力荐] 5. ...
- Qt组件中的双缓冲无闪烁绘图
双缓冲绘图在Qt4中,所有的窗口部件默认都使用双缓冲进行绘图.使用双缓冲,可以减轻绘制的闪烁感.在有些情况下,用户要关闭双缓冲,自己管理绘图.下面的语句设置了窗口部件的Qt::WA_PaintOn ...
- C++中String类的实现
原文:http://noalgo.info/382.html String是C++中的重要类型,程序员在C++面试中经常会遇到关于String的细节问题,甚至要求当场实现这个类.只是由于时间关系,可能 ...
- mysql二进制包安装与配置实战记录
导读 一般中小型网站的开发都选择 MySQL 作为网站数据库,由于其社区版的性能卓越,搭配 PHP .Linux和 Apache 可组成良好的开发环境,经过多年的web技术发展,在业内被广泛使用的一种 ...
- c++11 Chrono时间库
c++11 Chrono时间库 http://en.cppreference.com/mwiki/index.php?title=Special%3ASearch&search=chrono ...
- Windows环境下安装Redis
1:首先下载redis.从下面地址下:https://github.com/MSOpenTech/redis/releases2:创建redis.conf文件:这是一个配置文件,指定了redis的监听 ...
- [转]如何下载tizen源码(图文教程)?
http://blog.csdn.net/flydream0/article/details/8996654 当前tizen发布的最新源码版本是2.1,本文将以图文教程讲述如何下载tizen源码,关于 ...
- uclibc,eglibc,glibc之间的区别和联系
http://bbs.chinaunix.net/thread-3762882-1-1.html 1.Glibc glibc = GNU C Library 是GNU项(GNU Project)目,所 ...
- 让文字在标签li的底部
<ul> {aspcms:navlist type=6 } <li style="border-bottom:1px solid #d4d4d4;padding-top:2 ...
- [转]JAVA三大框架SSH和MVC
Java—SSH(MVC) JAVA三大框架的各自作用 hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就 ...