.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。

时间: 2024-08-09 23:51:44

.NET中变量的类型问题的相关文章

java中变量命名和引用变量的一个坑

这次有两个主题,第一个太简单啦,就是java中变量的命名规则,纯记忆性东西.第二个主题,就是讨论一下对象引用变量的一个注意点. 如果你对命名规则很熟啦,就直接看第二个内容吧.(上边的图稍微有点顺序紊乱啊) 一.java中变量的命名规则 大多数语言的命名规则是相似的,只有一些微小的差别. 变量的第一个位置,可以是字母,下划线(_),美元符($) (这个在c/c++,python中是不行的)(注意:不能是数字哦,一想就知道啦为什仫) 其他的位置可以是数字,字母,下划线 不能使用java中的关键字 j

python中变量命名

一 综述:  二 全局变量(包含函数和类): (1)正常变量x: *通过module.x能够使用. *通过from module import *能够使用. (2)以"_"开头变量x: *通过module.x能够使用. *通过from module import *不能使用. *通过from module import x能够使用. (3)以"__开头": *通过module.x能够使用. *通过from module import *不能使用. *通过from m

javascript中变量声明要早于赋值

javascript中变量声明要早于赋值:这里只做简单的现象介绍,具体不做深究,先看一段代码实例: var webName="蚂蚁部落"; document.write(webName); 对于这段代码应该没有任何问题,输出结果是:蚂蚁部落.再来看一段代码: document.write(webName); var webName="蚂蚁部落"; 按照代码是顺序执行的理论,以上代码应该会报错才对,但是这里输出结果却是:undefined.这说明在执行输出之前,变量已

swift中变量的几种类型

swift中变量分为 optional,non-optional 以及 implicitly unwrapped optional 这几种类型 var nullableProperty : AnyObject? // optional var nonNullProperty : AnyObject // non-optional var unannotatedProperty : AnyObject! // implicitly unwrapped optional 其中,optional (如

js中变量名提升和函数名提升

首先,js中变量没有块级作用域,但是有函数作用域,即只有函数可以约数变量的作用域. 并且,函数的实质也是一个变量,所以可以改变它的值,即赋值.所以变量名提升和函数名提升非常相像. 1.变量名的提升发生在函数内部.看下面的例子.说明:第一个因为弹出undefined,相当于在上面定义了var num;因为函数内部,定义了var num=20:就相当于在一开始定义了var num;这就是变量名的提升. var num = 10; function func() { alert(num); //und

Kotlin中变量不同于Java: var 对val(KAD 02)

原文标题:Variables in Kotlin, differences with Java. var vs val (KAD 02) 作者:Antonio Leiva 时间:Nov 28, 2016 原文链接:http://antonioleiva.com/variables-kotlin/ Kotlin系列课程的第二课:Kotlin中变量不同于Java: var 对val. 在这第二章节中,我们将了解Kotlin中变量是怎样工作的,什么是val和var,什么时间使用它们. 我从这开始,是因

shell中变量的使用(2)

shell中变量的几点知识: 变量: 1.在默认情况下,所有的变量都被看做字符串来存储的 2.变量区分大小写 3.在变量名前加$来访问内容 4.不需要声明 5.双引号中允许$扩展(用变量的值替换),单引号不行. 示例: s=hello         #(注意等号两边不能有空格) echo $s 环境变量: shell脚本开始执行时,一些变量会根据环境设置中的值进行初始化,这些变量就是环境变量.习惯大写字母. $HOME 当前用户的家目录 $PATH  以冒号分割的用来搜索命令的目录列表 $0 

java中变量运算细节 (2)

/* 目的:测试变量的运算方式 结果:byte a, b, c; a = b+c; 或者 a = b+10 形如这种形式的算式, 等式的右边的运算结果默认的都是int型的!因为等式右边有变量, 编译器无法确定变量的内容 ,因为它是变量!所以相加之后得到的int再默认强制转换成byte可能会损失精度. 而形如 a=4+5:这种常量的赋值,虽然 4 和 5 都默认的是int, 但都是常量,它们的值是确定的!所以如果 4+5的值超过了 byte的最大值的范围, 那就会编译出错!(也就是等式右边都是常量

(12)Powershell中变量的类型

Window Powershell中变量的类型与Java,C#等高级语言中变量的类型不一样,可以不用显示指定Powershell中变量的类型,即Powershell中的变量具有更大的灵活性.Powershell中的变量采用 .Net Framework类型. 默认情况下,当变量只有一个值时,变量的数据类型由赋予变量的值决定.例如,下面的语句创建一个整数 (System.Int32) 类型的变量: PS C:\> $a=3 如果需要确定变量的 .NET Framework 类型,可以使用 GetT