gpt4 book ai didi

.net - 要使您的代码符合 CLS,需要哪些更高级的规则?

转载 作者:行者123 更新时间:2023-12-01 11:10:36 26 4
gpt4 key购买 nike

根据 VS.NET 2005,这是一个不符合 CLS 的具体示例。

Public Interface IDbId

Function GetNativeObject() As Object
Function Equals(ByVal compObj As IDbId) As Boolean
Function CompareTo(ByVal compObj As IDbId) As Integer
Function ToString() As String

End Interface

这是我用DbId32、DbId64、DbIdString等类实现的接口(interface),是一种将原生数据库主键类型抽象为一个通用的.Net类型的方法。

我没有显示的是在给定 native 数据库类型的情况下实例化正确具体类型(例如,SQL Server 类型“int”的新 DbId32)的工厂方法。

现在假设我要像这样使用这个界面:

Public MustOverride ReadOnly Property ID() As IDbId

VS 现在输出这条警告消息:

Return type of function 'ID' is not CLS-complaint.

我可以通过将此属性添加到我的界面来停止这些警告:

<CLSCompliant(True)> _
Public Interface IDbId
...

此接口(interface)定义的函数似乎都没有违反记录的规则 here .那么为什么 VS 会显示这些警告?

最佳答案

我认为这是由于您示例中的 MustOverride 关键字修饰符所致。看一下这个: Non-CLS-compliant 'MustOverride' member is not allowed in a CLS-compliant class

关于.net - 要使您的代码符合 CLS,需要哪些更高级的规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/332515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com