- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 C# 中有一个非常简单的模型类,具有 5 个自动属性 - 4 个 int
和一个 string
public class MyModel
{
public int id { get; set; }
public int refId { get; set; }
public int type { get; set; }
public int mappingId { get; set; }
public string name { get; set; }
}
我在 vb.net 中有一个调用并检索该模型列表的类
Dim models As List(Of MyModel) = DataProvider.GetModels(refId)
而且这是正常的,一直在工作,没有警告。
但现在我正在重构并构建一个抽象基类,它在构造函数中接收这个模型列表
Public MustInherit Class MySpecialBase
Private ReadOnly _models As List(Of MyModel) ' No Warning
Public Sub New (ByVal models As List(Of MyModel)) 'Warning
_models = models
End Sub
Protected ReadOnly Property Models As List(Of MyModel) ' Warning
Get
Return _models
End Get
End Property
End Class
即使在这个抽象类中,警告也会出现在 (Of MyModel) 下的属性和构造函数上,但不会出现在私有(private)类成员中。
我不明白这个模型为什么不符合 cls。两个程序集(vb 和 c#)都是类库。有人可以解释这种行为吗?是VS问题吗?
最佳答案
这很容易解释,只有 Public 的声明才会被检查是否符合 CLS。您的私有(private)成员不能违反规则,其他代码不能使用它,因此也不会惹上麻烦。
您收到警告是因为 C# 程序集未标记为合规。您必须在任何您喜欢的地方添加此属性:
[assembly:CLSCompliant(true)]
请记住,CLS 合规性是一个过时的概念,它在 .NET 2.0 发布时不再相关。不仅仅是因为它使 VB.NET 陷入困境并弃用了 JScript,不将泛型视为不兼容的想法也是一种延伸。改造现有语言以支持泛型是一项相当大的工作。值得注意的是,您的类(class)需要消费者知道如何处理 List(Of T),它不会与 NetCOBOL 或 Fortran for .NET 一起使用。因此,简化您的生活,只需从您的 VB.NET 代码中删除该属性即可。
关于c# - "Type is not cls-compliant"在某些地方警告但在其他地方没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24749749/
我需要从我的 Android 应用程序中找到我网络中的 DLNA 兼容设备列表。 我正在使用来自 org.cybergarage 的 API。 它们在 Java 中可用,我想让它们支持 Android
所以我正在学习本教程,我终于弄清楚了如何使用 NSCoding 归档对象,以及如何使用可失败初始化器从文件系统再次初始化它。 // To encode the object in the first
我正在尝试使用 Python geojson 模块构建一个 GeoJSON 文件,该模块包含一个规则的二维点网格,其“属性”与地球物理变量(速度、温度等)相关联。该信息来自 netcdf 文件。 所以
假设您有一个来自您从外部资源加载的提要的更新元素列表,您知道您的 ADA 用户绝不会愿意听到他们的屏幕阅读器阅读这些内容。有没有一种方法我找不到让他们跳过该内容,甚至从屏幕阅读器可能看到的仍然符合 5
我在 C# 中有一个非常简单的模型类,具有 5 个自动属性 - 4 个 int 和一个 string public class MyModel { public int id { get;
使用 Dart 1,我能够在我的 pubspec.yaml 的转换器部分指定一些 dart2js 选项,特别是使生成的 JS CSP 兼容的选项: transformers: - $dart2js
下面是我的服务器套接字线程的run(),它将作为Executors.newWorkStealingPool().submit(() -> mainServer.run());运行code> 并接受客户
公共(public)语言规范对方法重载非常严格。 Methods are allowed to be overloaded only based on the number and types of
这个问题已经有答案了: Xcode - How to fix 'NSUnknownKeyException', reason: … this class is not key value coding
我是 CoreData 和 Restkit 的新手,遇到以下错误时遇到了很多麻烦。 我正在使用 restkit 来解析从 Foursquare 返回的一些地点。不幸的是我一直收到这个错误: 2013-
我使用 Interface Builder 创建了一个包含 XIB 文件和 UILabel 的类。 UILabel 与相应 .h 类中的 IBOutlet 链接。 我删除了 XIB 文件,但现在执行时
我或多或少是 iOS 开发的新手。 我下载了以下存储库以包含在我的项目中: https://github.com/nicklockwood/SwipeView 它包括一个水平分页 View ,并基于正
这可能是一个重复的问题,但我通过搜索互联网找到的解决方案都不会在 w3c 上验证。 我在托管公司的服务器上没有文档级别的精细控制,因此我需要在文档本身中包含 no-cache 指令。 HTML5 允许
更新:我决定重新开始,因为我还处于这个应用程序的早期阶段。我重复了所有内容,无论出于何种原因,自定义单元格都出现了第二次。我会保留旧文件以确认另一个答案,因为我想我不是唯一会遇到此问题的人。 我正在构
这个问题在这里已经有了答案: Xcode - How to fix 'NSUnknownKeyException', reason: … this class is not key value co
这个问题在这里已经有了答案: Xcode - How to fix 'NSUnknownKeyException', reason: … this class is not key value co
发现问题:无效的数据安全部分 我们在 Play 管理中心查看了您应用的数据安全部分,发现该部分与应用收集和共享用户数据的方式之间存在差异。所有应用都必须填写准确的数据安全部分,披露其数据收集和共享做法
我收到此消息: *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:f
我已将代码更新为在Xcode 9中快速运行4。在此之前,它可以正常工作。但是现在AVplayer崩溃了,下面是崩溃的代码。 addObserver(self, forKeyPath: "player.
编辑感谢马特的帖子,我现在明白我不应该尝试将“started”作为数组访问。但是,如果是这样的话,我想知道为什么这段代码似乎在其他地方工作。在我看来,这应该是“一个或另一个”。它应该起作用,或者不应该
我是一名优秀的程序员,十分优秀!