什么是打字纪律?
What is typing discipline?
维基百科谈论 C# 打字纪律:
static, dynamic, strong, safe, nominative, partially inferred
什么是打字纪律?这些术语的含义以及它们与语言的关系如何?
维基百科上的类型规则指的是 C# 使用的类型系统(只需尝试单击 link,它将引导您进入 Type System 文章)。
至于他们的意思:
static - 类型在编译时确定(编译器想在运行前知道类型)
dynamic - 类型在运行时确定(在 C# 中,这是通过 C# 4.0 中引入的 dynamic
关键字实现的)
safe - 该语言不允许您违反它的类型规则。例如,如果没有定义转换,就不能将字符串放入复杂类型列表中。
strong - 与其不好解释,不如看看 Eric Lippert 关于该主题的文章 here
nominative - 类型的名称用于确定类型等价性(这意味着具有相同字段但名称不同的两个类型被视为不同类型)
partially inferred - 编译器可以在编译时猜测你所引用的类型(这是 c# 中的 var
关键字,它允许你不在你的代码中指定类型,尽管它仍然是在编译时以静态和强大的方式确定的)
维基百科谈论 C# 打字纪律:
static, dynamic, strong, safe, nominative, partially inferred
什么是打字纪律?这些术语的含义以及它们与语言的关系如何?
维基百科上的类型规则指的是 C# 使用的类型系统(只需尝试单击 link,它将引导您进入 Type System 文章)。
至于他们的意思:
static - 类型在编译时确定(编译器想在运行前知道类型)
dynamic - 类型在运行时确定(在 C# 中,这是通过 C# 4.0 中引入的 dynamic
关键字实现的)
safe - 该语言不允许您违反它的类型规则。例如,如果没有定义转换,就不能将字符串放入复杂类型列表中。
strong - 与其不好解释,不如看看 Eric Lippert 关于该主题的文章 here
nominative - 类型的名称用于确定类型等价性(这意味着具有相同字段但名称不同的两个类型被视为不同类型)
partially inferred - 编译器可以在编译时猜测你所引用的类型(这是 c# 中的 var
关键字,它允许你不在你的代码中指定类型,尽管它仍然是在编译时以静态和强大的方式确定的)