VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: 393736105

short类型的0怎么表示?

[复制链接]

0

主题

38

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
发表于 2020-7-25 18:00:01 | 显示全部楼层
楼主知道装箱,不知道拆箱吗?
回复

使用道具 举报

1

主题

31

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
 楼主| 发表于 2020-7-25 18:15:01 | 显示全部楼层
运行的时候,我是不知道把这个箱拆成什么类型的.
回复

使用道具 举报

1

主题

31

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
 楼主| 发表于 2020-7-25 18:45:02 | 显示全部楼层
因为这个值可能是int,short,long中的一种,我现在除了一个个的来比较外,没有别的办法.
回复

使用道具 举报

0

主题

38

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
发表于 2020-7-25 19:30:02 | 显示全部楼层
short a = 0;
object obj = a;
short aa = (short)obj;
bool b = (aa==0);
System.Console.WriteLine(b);
回复

使用道具 举报

1

主题

31

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
 楼主| 发表于 2020-7-25 20:00:02 | 显示全部楼层
老兄也太看不起我了吧,如果这么简单我就不问了:

short aa = (short)obj;
我怎么知道用shot来强制转换而不是用long来转呢...
回复

使用道具 举报

0

主题

38

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
发表于 2020-7-26 01:30:01 | 显示全部楼层
//现在除了一个个的来比较外,没有别的办法
正确

if (obj is short)
{
    short aa = (short)obj;
}
if (obj is int)
{
    int aa = (int)obj;
}
回复

使用道具 举报

1

主题

31

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
 楼主| 发表于 2020-7-26 11:45:01 | 显示全部楼层
看来只能如此写了.我看了一下整数表有如下的一些类型:
sbyte byte char short ushort int uint long ulong
要知道它们所对应的零值,只能用如下的方法来写了:

if (object.Equals(obj, (sbyte)0) || object.Equals(obj, (byte)0) || object.Equals(obj, (char)0) || object.Equals(obj, (short)0) || object.Equals(obj, (ushort)0) || object.Equals(obj, (int)0) || object.Equals(obj, (uint)0) || object.Equals(obj, (long)0) || object.Equals(obj, (ulong)0))
{
     System.Console.WriteLine("零值");
}
else
{
    System.Console.WriteLine("非零值");
}
回复

使用道具 举报

0

主题

8

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-7-26 12:00:01 | 显示全部楼层
//现在除了一个个的来比较外,没有别的办法
正确


直接用Convert不就行了?Convert.ToDouble或者Convert.ToInt64


另,short j = i + 2;这个编译出错的原因是cqgang说的,short类型不能参与运算,即short+short会变成int。

    short i, j;
    i = j = 1;
   
    short k = i + j;

这段程序也无法通过编译……
回复

使用道具 举报

0

主题

8

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-7-26 12:15:01 | 显示全部楼层
你如果确定不会出现ulong,就用Convert.ToInt64好了……
回复

使用道具 举报

1

主题

31

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
 楼主| 发表于 2020-7-26 14:45:01 | 显示全部楼层
强制的都用一个类型表示也是一个办法,不过感觉转来转去可能会"失真"的.
这是我没有采用这种方法的原因.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表