我正在使用 Roslyn 编写一个应用程序来在语法和语义上分析 C# 源代码。对于正在分析的源代码中定义的每种类型,我想存储它是引用类型(类)、值类型(结构)还是接口。
类型类型的适当/官方术语是什么?
例子:
class A
{
//This type's type (A's type) is 'class' (i.e. a reference type).
}
如果你想知道官方名称,请查看官方来源:C# 语言规范。从那里引用(§1.3 类型和变量;强调我的):
C#中有两种类型:值类型和引用类型。[…]
C#的值类型进一步分为简单类型、枚举类型、结构类型和可空类型,C#的引用类型进一步分为类类型、接口类型、数组类型和委托类型。
然后有一个表将这些类型组描述为category,还有这个引用:
C# 的五类类型是用户可定义的:类类型、结构类型、接口类型、枚举类型和委托类型。
虽然后来(在 §4 类型中):
C# 语言的类型分为两大类:值类型和引用类型。
总而言之,规范称它们为类型的类别,尽管它对该术语的使用不是很一致。
在类型论中,类型的类型通常称为它的种类。这主要描述了一种类型的参数化形式,尽管它也可以用于其他分类。但我不确定它是否自然适用于您在这里所指的分类。似乎 C# 也没有一个“官方”术语。
我已经看到我们在 Roslyn 源代码中使用“种类”,例如“可以声明 5 种可能的类型”。但是我不认为有一个官方定义的术语。我会使用“种类”或“种类”。