是否有一个词包含“类”和“结构”?

pho*_*oog 6 c# terminology

C# 中的类和结构有几个共同特征:

\n\n
    \n
  • 它们可以被实例化(没有相反的限制,就像抽象类和静态类一样)
  • \n
  • 它们可以包含方法和属性实现
  • \n
  • 类型的作者定义类型的实例字段
  • \n
\n\n

我们经常使用“类”和“结构”来区分“引用类型”和“值类型”,但有时考虑这两种类型是有用的。此外,“引用类型”还包括接口和委托,它们不是类。所以“类”并不意味着任何引用类型,它的意思是“引用_ (填空) _ ”。

\n\n

例如,如果引用和值类型声明如下所示:

\n\n
public sealed class ref String { }\npublic class val Int32 { }\n
Run Code Online (Sandbox Code Playgroud)\n\n

而不是像这样:

\n\n
public sealed class String { }\npublic struct Int32 { }\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么“类”这个词就可以用来表示这个概念。

\n\n

我在这里提出的最佳答案是“具体类型”,但这会令人困惑,因为它也可以引用抽象类的非抽象子类。

\n\n

有什么建议么?

\n\n

编辑

\n\n

澄清一下,我并不是在寻找一个可以共同描述类和结构实例的词。我正在尝试描述类类型和结构类型。

\n\n

换句话说,如果“class”表示包含 、 等的集合System.String,而“struct”表示包含、等System.FileInfo的集合,那么我正在寻找表示这些集合的并集的单词。System.Int32System.Collections.Generic.List<T>.Enumerator

\n\n

编辑2

\n\n

(针对 Jord\xc3\xa3o\ 的回答)回答这个问题的另一种方法是完成以下句子:“所有 C# 方法实现必须声明为 _ 填空) _的成员”。

\n

Jor*_*dão 5

我通常使用术语“类型”来指代任何这些元素:类、结构甚至接口和枚举。

我从来没有真正觉得有必要专门讨论类和结构,我可能只会说“类”,然后根据需要区分它们。


Kla*_*sen 1

我认为这是一个伪讨论。第三点也可以说是关于枚举和接口,而关于抽象类的子类不适合混合的观点,我根本不明白。我认为你自己对“具体类型”的建议是可以的,但也许你只想将它们作为类和结构来讨论,哦等等,但抽象类的子类和实现接口的类除外。没有针对您要查找的内容的术语的原因可能是它本身并不是一个非常有用的概念。

编辑:

所有 C# 方法实现都必须声明为类或结构的成员。