2012-12-01 46 views
7

Tôi đang viết một ứng dụng sử dụng Roslyn để phân tích ngữ pháp và ngữ nghĩa mã nguồn C#. Đối với mỗi loại được xác định trong mã nguồn đang được phân tích, tôi muốn lưu trữ cho dù đó là một loại tham chiếu (một lớp), một loại giá trị (một cấu trúc) hoặc một giao diện.Thuật ngữ (chính thức) cho loại của một loại là gì?

Cụm từ thích hợp/chính thức cho loại của loại là gì?

Ví dụ:

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

Haskell gọi loại này là "loại". Có thể nó tương tự trong .NET. – siride

+0

Không chắc chắn nếu có một thuật ngữ chính thức cho bộ sưu tập bao gồm Lớp, Giao diện, Enum, Loại, v.v. Tôi sẽ gọi chúng là cấu trúc nhưng sẽ đưa vào phần chú giải/thuật ngữ để xác định việc sử dụng thuật ngữ đó trong ngữ cảnh của tài liệu. – JohnLBevan

+0

câu hỏi này đòi hỏi Jon Skeet :)! –

Trả lời

11

Nếu bạn muốn biết tên chính thức, nhìn vào các nguồn chính thức: đặc tả ngôn ngữ C#. Trích dẫn từ đó (§1.3 loại và các biến; tôi nhấn mạnh):

Có hai loại định dạng trong C#: kiểu giá trị và kiểu tham chiếu. […]

Loại giá trị của C# được chia thành các loại đơn giản, loại enum, loại cấu trúc và loại có thể có và các loại tham chiếu của C# được chia thành các loại lớp, loại giao diện, loại mảng và loại đại biểu.

Sau đó là một bảng mô tả những nhóm loại như loại, và cũng có thể trích dẫn này:

Năm trong C# 's loại các loại là do người dùng định nghĩa: các loại class, struct loại, loại giao diện, loại enum và loại đại biểu.

Mặc dù sau đó (trong §4 loại):

Các loại ngôn ngữ C# được chia thành hai loại chính : Giá trị các loại và các loại tài liệu tham khảo.

Để tổng hợp, đặc điểm kỹ thuật gọi chúng là các loại, mặc dù việc sử dụng cụm từ đó không nhất quán.

+0

Câu trả lời hay! Cá nhân tôi sẽ sử dụng 'loại' khi nói về một loại và 'danh mục' khi nói về một nhóm các loại (tức là một loại các loại là một nhóm các loại cùng loại). – lesderid

3

Trong lý thuyết loại, loại của loại thường được gọi là loại. Điều đó chủ yếu mô tả dạng tham số của một kiểu, mặc dù nó cũng có thể được sử dụng cho các phân loại khác. Nhưng tôi không chắc liệu nó có áp dụng tự nhiên cho loại phân loại mà bạn đang đề cập đến ở đây hay không. Dường như C# không có cụm từ "chính thức" cho điều đó.

2

Tôi đã thấy chúng tôi sử dụng "loại" trong mã nguồn Roslyn, như trong "có 5 loại loại có thể được khai báo". Tuy nhiên tôi không nghĩ rằng có một thuật ngữ được xác định chính thức cho việc này. Tôi muốn sử dụng "loại kiểu" hoặc "loại".