问题标签 [cls-compliant]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
181 浏览

.net - 是否有任何不符合 CLS 的常用 .NET 语言?

这些天是否有任何不符合 CLS 的 .NET 语言常用?看起来 VS2012 开箱即用的每一种托管语言都支持无符号整数类型,所以实际上来说,在公共/受保护类型签名中使用“无符号”可能会遇到多大麻烦?

看起来 CLR、CTS 和相关技术在这一点上基本上已经“完成”了,所以人们想知道 CLS 合规性对于“现代”.NET 代码有多少好处。

我们现在是否纯粹出于动力而跳过 CLS 篮球?

0 投票
1 回答
612 浏览

vb.net - VB.NET 中的 CLS 合规性问题

下面的简单类有什么不符合 CLS 的?

我收到警告说我的派生类不符合 CLS,因为它继承自下面不符合 CLS 的类(显然)。

是的 - 以上是该课程的完整代码。

以下是基类和派生类的完整文件:

基类:

派生类:

0 投票
1 回答
232 浏览

mono - 类与 .NET 兼容 CLS,但在 Mono 中不兼容

我必须建立自己的 Version 类。在 .NET 中它符合 CLS,但在 Mono 中它不是出于某种原因。任何想法为什么?

我抛出的自定义异常类只是 ArgumentNullException 的包装器,它为我“自动填充”消息,因此它们实际上并没有添加任何类型。

0 投票
1 回答
4310 浏览

c# - 为什么我的课程不符合 CLS?

这真的让我很困惑。我已经尝试删除只读的,更改名称..我在这里做错了什么?

编辑:

警告:

警告 1“Ar.ViewModel.Workspaces.MaterialCatalogBase”:基本类型“Or.Files.CatalogBase”不符合 CLS C:_Center_Work_Programming_Cs\Ar\Ar\ViewModel\Workspaces\MaterialCatalogBase.cs 9 18 Ar

编辑2:

即使我如下更改类,我仍然会收到错误:

另外,我忘了提到由于某种原因我得到了两个(完全相同的错误)..?

0 投票
3 回答
478 浏览

.net - CLS 与 .NET 类型合规性:了解差异

我在这里遗漏了一些东西。我知道人们会在公共接口和方法中使用.NET兼容类型,以便 .NET 语言可以很好地协同工作(例如,“System.String”,而不是 C# 的“string”)。

如果使用 .NET 兼容类型,那么所有基于 .NET 的语言肯定都可以互操作。CLS 合规性何时以及如何影响?

例如,System.UInt16 是 .NET 兼容的,而不是CLR兼容的,并且等效于 C# 中的“ushort”。

0 投票
0 回答
128 浏览

c# - mshtml cls 兼容的未知警告

我有一个用 C# 编写的 .net 项目。项目中只有 1 个类使用 Microsoft.mshtml 库,但是项目中有 2 个类在构建时生成 mshtml 警告。以下是几个警告示例:

在抱怨我从未使用过的 mshtml 标识符的 2 个类中,我收到了 162 个不同警告的几乎重复。这 2 个类从不使用或引用 Microsoft.mshtml。我已经到了从其中一个类中删除所有代码以及代码中对该类的所有引用的调试点,但我仍然收到警告。我在这里找到了关于堆栈溢出的类似帖子:

mshtml 和 CLS 合规性

那从来没有得到答案。有谁知道这可能是什么?

0 投票
1 回答
331 浏览

operator-overloading - 对于所有 .NET 运算符重载方法是否必须是公共的和静态的,这是真的吗?

引用自 C# 来自 CLR

CLR 规范要求运算符重载方法是公共方法和静态方法。

我检查了 ECMA-335,但找不到任何证据。

到目前为止,我知道 C# 和 F# 是这样。所有符合 CLS 的语言都是这样吗?

0 投票
1 回答
191 浏览

c# - C# 和 VB 中的锯齿状数组 CLS 遵从性不同?

根据公共语言规范,具有数组参数的方法的重载决策基于它们是数组的事实及其元素类型。所以下面的代码应该是兼容的(它是),因为它Double()()是一个数组数组,而 asDouble()是一个双精度数组。

但是,使用 C# 中的相同代码,我在第二个 ArrayTest 方法上收到警告:

“重载方法 'CSTest.ArrayTest(double[][])' 仅因未命名数组类型而异,不符合 CLS”

如果我正确理解了这条 CLS 规则,C# 对待锯齿状数组的处理方式是否与 VB 不同?或者这是 C# 编译器中的错误?在这两种情况下,我都在运行针对 .NET Framework 4.0 的 VS2010。

0 投票
1 回答
2877 浏览

c# - 为什么此参数不符合 CLS?

我正在尝试消除我们在整个解决方案中遇到的所有符合 CLS 的错误。虽然我已经设法整理出几个(例如以下划线开头的公共变量并使用无符号整数),但有一些我似乎无法找到它们失败的原因。

我已经粘贴了与其中一个问题相关的所有代码,有相当多的代码,但它只包含一个表单构造函数、接口和实现该接口的类。

VB.Net 表单构造函数(警告在unitOfWork参数上并且读取参数“unitOfWork”的类型不符合 CLS

界面IUnitOfWork如下:

接口的唯一实现(因此将传递给表单构造函数的实例)是这样的:

我要么对这个问题视而不见(可能是我多年来一直盯着这个问题的情况!),或者还有另一个我不知道的 CLS 合规限制。有什么建议么?

0 投票
1 回答
539 浏览

.net - 设置的区别并与 NoWarn 中的 CLS 合规性编译器警告相关

当 VB.NET 程序集符合 CLS 且其中的某些类型不符合时,编译器会显示不符合 CLS 的类型警告(代码 40025、40026、40027、40028)。万一我知道这种不合规行为并且很好,我想隐藏警告。可以通过两种方式进行: 1. 编辑项目文件并将警告添加到<NoWarn></NoWarn>部分。2. 编辑 AssemblyInfo 并设置<Assembly: CLSCompliant(False)>.

有谁知道这两种方法的优点、缺点和可能的后果?