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