0

以下内容来自一本关于 C# 的书。

为了说明,以下 Add() 方法不符合 CLS,因为参数和返回值使用无符号数据(这不是 CLS 的要求):

class Calc
{
// Exposed unsigned data is not CLS compliant!
public ulong Add(ulong x, ulong y)
{ return x + y;}
}

这是什么意思?函数怎么能不ulong取值?C# 的 CLS(通用语言规范)中没有涵盖这一点吗?

我确实尝试了这个例子,它构建并运行良好。我认为传递一个ulong论点是非常基本的。本段集会是什么意思?

4

1 回答 1

2

这意味着其他一些 .NET 风格可能无法使用该方法,因为它不支持无符号数据类型。.NET 不仅是 C#;有许多语法可以编译为与 C# 相同的底层内容 - .NET 的吸引力之一是,如果有人为您最喜欢的生成 .NET IL 的编程语法(例如 COBOL)编写了编译器,那么您可以编写您的 COBOL ,您可以使用用 C# 编写的库,甚至可以将它们并排放在同一个解决方案中(试试看;将 vb.net 和 ac# 项目放在一个解决方案中,相互引用并调试它 - 调试器将愉快地在两人之间来回走动)

这些天,CLS 的合规性规则是否过于严格是一些争论的主题,但如果您正在编写一些东西并希望确保所有风格都支持您编写的内容,您可以将您的程序集标记为符合 CLS 并遵守规则

于 2020-08-07T06:08:46.420 回答