【发布时间】:2013-05-11 10:41:14
【问题描述】:
我最近在使用 Array.SetValue(Int32) 方法时在 C# 中发现了一个异常。例外是:
也不能从源类型扩大到目标类型,因为源 类型不是原始类型或转换不能 完成。
提到“原始类型”这个词让我有点吃惊,因为我认为人们倾向于将这些类型称为内置类型,而且术语“原始类型”是一个非正式术语。 “原始”类型和“内置值类型”有什么区别?我在 C# 语言规范中没有找到原始类型的定义。
【问题讨论】:
-
原始类型是在 CLR 中定义的,而不是在 C# 中。 msdn.microsoft.com/en-us/library/aa711900.aspx
-
示例:DateTime 是一种值类型,但它不是原始类型。
int、char等是原语。 -
您可以将其作为答案
-
@RudiVisser - 您发布的链接包含
Visual Basic .NET defines the following primitive types: -
@MartinSmith 确实,我在答案版本中链接了更好的资源。