.NET中变量的类型问题

clipboard

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。    

posted @ 2014-12-24 23:26  大黑兔  阅读(497)  评论(0编辑  收藏  举报