long 数据类型

coffeewar 2005-07-27 10:53:23
object i=1;
long j=(long)i; //正常
================

object i=0;
long j=(long)i; //InvalidCastException


为什么?
...全文
127 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhilunchen 2005-07-28
  • 打赏
  • 举报
回复
支持2楼的
GaoFX 2005-07-27
  • 打赏
  • 举报
回复
哈哈,不好意思,上面代码顺序正好写反了。
GaoFX 2005-07-27
  • 打赏
  • 举报
回复
不知道到底返回值是个什么东东,但是可以修改
return Convert.ToInt64(SQLHelper.ExecuteScalar(con,CommandType.StoredProcedure,"GetCurrencyInventory",parms);

return (long)SQLHelper.ExecuteScalar(con,CommandType.StoredProcedure,"GetCurrencyInventory",parms));
coffeewar 2005-07-27
  • 打赏
  • 举报
回复
加上l 我知道,我也测试过了的

SQLHelper.ExecuteScalar(con,CommandType.StoredProcedure,"GetCurrencyInventory",parms);
但这个怎么加.

我现在直接这样,反正也不管了.
return long.Parse(SQLHelper.ExecuteScalar(con,CommandType.StoredProcedure,"GetCurrencyInventory",parms).ToString());
coffeewar 2005-07-27
  • 打赏
  • 举报
回复
确实 直接 object i=1;
long j=(long)i; 也会出错.

但这样的话就没问题(不能为0) return (long)SQLHelper.ExecuteScalar(con,CommandType.StoredProcedure,"GetCurrencyInventory",parms);

object SQLHelper.ExecuteScalar(...)



GaoFX 2005-07-27
  • 打赏
  • 举报
回复
因为那么小的一个数字常量系统认为是int型的,所以直接转换是失败的。
数字后面那个即可以是大小的L,也可以是小写的l,但是系统会给你一个友好的警告信息:
“l”后缀容易与数字“1”混淆 -- 为清楚起见,请使用“L”
呵呵。
GaoFX 2005-07-27
  • 打赏
  • 举报
回复
你确认第一个也行吗?我测试了不行。
应该用object i = 1L;
long j = (long)i;

object i = 0L ;
long j = (long)i ;

数字后面加L字符表示是long型的。
os586 2005-07-27
  • 打赏
  • 举报
回复
我也不明白,帮顶

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧