C# 为什么我们可以在不强制转换的情况下将32位的文本整数分配给short类型的变量?
在我的理解中,文字整数默认属于C# 为什么我们可以在不强制转换的情况下将32位的文本整数分配给short类型的变量?,c#,C#,在我的理解中,文字整数默认属于System.Int32。如果是这样的话,为什么我们可以在不强制转换的情况下将System.Int32类型的文本整数赋值给short x short x = 1;//compilable 为什么我们不需要按如下方式使用铸造 short x = (short)1; 因为本规范允许第6.1.9节: int类型的常量表达式可以转换为sbyte,byte, short、ushort、uint或ulong提供了常量的值 表达式在目标类型的范围内 1实际上是int类型的常量
System.Int32
。如果是这样的话,为什么我们可以在不强制转换的情况下将System.Int32
类型的文本整数赋值给short x
short x = 1;//compilable
为什么我们不需要按如下方式使用铸造
short x = (short)1;
因为本规范允许第6.1.9节:
int
类型的常量表达式可以转换为sbyte
,byte
,
short
、ushort
、uint
或ulong
提供了常量的值
表达式在目标类型的范围内
1
实际上是int
类型的常量表达式,因为(第2.4.4.2节,“整数文本”):
整数文本的类型确定如下:
- 如果文本没有后缀,则它具有可以表示其值的第一种类型:
,int
,uint
,long
ulong
因为本规范允许第6.1.9节:
int
类型的常量表达式可以转换为sbyte
,byte
,
short
、ushort
、uint
或ulong
提供了常量的值
表达式在目标类型的范围内
1
实际上是int
类型的常量表达式,因为(第2.4.4.2节,“整数文本”):
整数文本的类型确定如下:
- 如果文本没有后缀,则它具有可以表示其值的第一种类型:
,int
,uint
,long
ulong
为了清晰起见,添加了章节号-希望您不介意:)是否有PDF格式的C#规范文档而不是MS Word格式?我没有安装Word.:-)@CodeMocker:OpenOffice和LibreOffice等开源办公套件可以打开它,您不需要Word。谷歌文档或类似的在线服务也可以做到这一点。为了清晰起见,增加了章节号——希望你不介意:)有PDF格式的C#规范文档而不是MS Word格式的吗?我没有安装Word.:-)@CodeMocker:OpenOffice和LibreOffice等开源办公套件可以打开它,您不需要Word。谷歌文档或类似的在线服务也可以做到这一点。