【发布时间】:2019-01-21 01:13:55
【问题描述】:
我不明白为什么下面两个代码语句不等价:
if( _hexColourString.Length >= 8 )
_bytes[ 3 ] = byte.Parse( _hexColourString.Substring( start + 6, 2 ), NumberStyles.AllowHexSpecifier );
else
_bytes[ 3 ] = 0x00;
_bytes[ 3 ] = ( _hexColourString.Length >= 8 ) ? byte.Parse( _hexColourString.Substring( start + 6, 2 ), NumberStyles.AllowHexSpecifier ) : 0x00;
第一个编译没有问题,而第二个说我需要将一个 int 转换为一个字节。修复它显然没有问题,但我想了解为什么需要演员表。
【问题讨论】:
标签: c# casting ternary-operator