首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(0) | 引用(0) | 阅读2021次
C# 溢出 int unchecked

SGIP消息头 Command ID 4 Integer 命令ID 但是SGIP_BIND_RESP 定义是0x80000001。
结果:sgipmsg.cs(40,21): error CS0221: 常数值“2147483649”无法转换为“int”(使用“unchecked”语法重写)

在.NET中:int -2,147,483,648 到 2,147,483,647 有符号 32 位整数 System.Int32
int 数据类型存储为四字节整数。

int 类型可以表示负 2,147,483,648 至正 2,147,483,647 范围内(包括这两个数)的整数。

unchecked 关键字用于控制整型算术运算和转换的溢出检查上下文。它可以按照下列形式用作运算符或语句。
unchecked block
unchecked 运算符:

unchecked (expression)
其中:
block
包含要在未检查上下文中计算的表达式的语句块。
expression
要在未检查上下文中计算的表达式。注意表达式必须位于括号 ( ) 内。
备注
在未检查的上下文中,如果表达式产生目标类型范围之外的值,则结果被截断。

如果既未使用 checked 也未使用 unchecked,则在编译时常数表达式使用默认溢出检查(即 checked)。否则,如果表达式为非常数,则运行时溢出检查取决于其他因素(如编译器选项和环境配置)。

下面三个示例演示 checked 语句和 unchecked 语句。所有这三个示例都使用相同的算法,但使用不同的检查上下文。这三个示例使用的是常数表达式,因此在编译时计算溢出检查。

只有 unchecked 语句产生截断的值。其他两个语句产生编译时错误。

警告:The operation overflows at compile time in checked mode.

uint 类型存储为四字节的无符号整数。

uint 类型可以表示 0 至 4,294,967,295 范围内(包括这两个数)的整数。

相应的 .NET Framework 数据类型为 System.UInt32。uint 数据类型的属性和方法与 System.UInt32 属性和方法相同。
TestCase 'M:SGIPSP.SGIP.SGIPMsg.testt' failed: 索引(从零开始)必须大于或等于零,且小于参数列表的大小。
 System.FormatException: 索引(从零开始)必须大于或等于零,且小于参数列表的大小。
 at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
 at System.String.Format(IFormatProvider provider, String format, Object[] args)
 at System.String.Format(String format, Object[] args)
p:\cvswork\work\sgipsp\sgip\sgipmsg.cs(475,0): at SGIPSP.SGIP.SGIPMsg.testt()0 succeeded, 1 failed, 0 skipped, took 0.04 seconds.

疯了,居然写出如此代码:Trace.WriteLine(string.Format("{ 0 },{ 1 },{ 2 },{ 3 },{ 4 },{ 5 },{ 6 },{ 7 }","1","2","3","4","5","6","7")); 不会数数了。

Trace.WriteLine(string.Format("{ 0 },{ 1 }","1\0\0","2")); 这样的话,后面的2没有了,并且WRITELINE得换行符也没有了。


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/cnetunchecked.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1120457351

2005年7月4日14:09星期一  [Dev开发] 追踪此文的RSS
提示:
此文还没有评论。

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1858
在线: 13||用户: 2577 [列表]
今日:392||到访:2886456
Rss:897735||评论:1605

最新日志

最新评论

友情链接

日历
2008 - 08
     12
3456789
10111213141516
17181920212223
24252627282930
31      

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8