什么是类型的(官方)术语?

时间:2012-12-01 17:03:53

标签: c# types metadata naming roslyn

我正在使用Roslyn编写一个应用程序来语法和语义分析C#源代码。对于正在分析的源代码中定义的每种类型,我想存储它是引用类型(类),值类型(结构)还是接口。

类型类型的适当/官方术语是什么?

示例:

class A
{
    //This type's type (A's type) is 'class' (i.e. a reference type).
}

3 个答案:

答案 0 :(得分:11)

如果您想知道官方名称,请查看官方来源:C#语言规范。引自那里(§1.3类型和变量;强调我的):

  

C#中有两种类型:值类型和引用类型。 [...]

     

C#的值类型进一步分为简单类型,枚举类型,结构类型和可空类型,C#的引用类型又分为类类型,接口类型,数组类型和委托类型。

然后有一个表格将这些类型组描述为 category ,还有这个引用:

  

C#的类型中有五个是用户可定义的:类类型,结构类型,接口类型,枚举类型和委托类型。

虽然稍后(在§4类型中):

  

C#语言的类型分为两个主要类别:值类型和引用类型。

总而言之,规范称它们为类别类别,尽管它对该术语的使用不是很一致。

答案 1 :(得分:3)

在类型理论中,类型的类型通常称为。这主要描述了一种类型的参数化形式,尽管它也可以用于其他分类。但是我不确定它是否适用于你在这里提到的那种分类。似乎C#也没有“官方”术语。

答案 2 :(得分:2)

我看到我们在Roslyn源代码中使用“kind”,如“有5种可以声明的类型”。但是,我认为没有正式定义的术语。我会使用“种类型”或“种类”。