首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CA1033:接口方法应可由子类型调用

项 “值” RuleId CA1033 类别 设计 修复是中断修复还是非中断修复 非中断 原因 未密封的外部可见类型提供了显式实现公共接口的方法,但没有提供具有相同名称的其他外部可见方法。...规则说明 考虑到显式实现公共接口方法的基类型。 派生自该基类型的类型只能通过引用强制转换到接口的当前实例(C# 中的 this)来访问继承接口方法。...如果派生类型重新实现(显式)继承接口方法,则无法再访问基实现。 通过当前实例引用进行的调用将调用派生实现;这将导致递归和最终的堆栈溢出。...如何解决冲突 若要解决此规则的冲突,请实现新的方法,该方法公开相同的功能,并对派生类型可见或更改为非显示实现。 如果可接受中断性变更,还可以选择将类型设为密封类型。...有关详细信息,请参阅如何禁止显示代码分析警告。 示例 下面的示例显示了一个与此规则冲突的 ViolatingBase 类型,以及一个显示冲突修补程序的 FixedBase 类型。

50720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CA1710:标识符应具有正确的后缀

    值 规则 ID CA1710 类别 命名 修复是中断修复还是非中断修复 重大 原因 标识符的后缀不正确。 默认情况下,此规则仅查看外部可见的标识符,但这是可配置的。...规则说明 按照约定,扩展某些基类型或实现某些接口的类型的名称,或者由这些类型派生的类型的名称应具有与相应基类型或接口关联的后缀。 命名约定为面向公共语言运行时的库提供通用外观。...何时禁止显示警告 如果类型是可扩展的或将保留任意一组不同的项的通用数据结构类型,则可禁止显示使用 Collection 后缀的警告。..., internal 排除间接基类型 可以配置是否从规则中排除间接基类型。...默认情况下,此选项设置为 true,这会将分析限制为对当前的基类型执行。

    1K00

    CA1063:正确实现 IDisposable

    值 规则 ID CA1063 类别 设计 修复是中断修复还是非中断修复 非中断 原因 System.IDisposable 接口无法正确实现。...对于未密封的类型,Finalize 实现不调用或不同时调用 Dispose(bool) 或基类终结器。 违反其中任何一个模式都会触发警告 CA1063。...默认情况下,此规则仅查看外部可见的类型,但这是可配置的。 规则说明 所有的 IDisposable 类型都应正确实现 Dispose 模式。...如何解决冲突 检查代码,并确定以下哪种解决方法能解决此冲突: 从类型实现的接口列表中移除 IDisposable,并重写 Dispose 基类实现。...如果创建声明和实现 IDisposable 接口的未密封类型,请确保 IDisposable 的实现遵循本节前面所介绍的模式。 何时禁止显示警告 不禁止显示此规则发出的警告。

    59430

    CA1724:类型名不应与命名空间冲突

    值 规则 ID CA1724 类别 命名 修复是中断修复还是非中断修复 重大 原因 类型名与具有一个或多个外部可见类型的被引用命名空间名称冲突。 名称比较不区分大小写。...规则说明 用户创建的类型名不应与具有外部可见类型的被引用命名空间的名称冲突。 与该规则冲突将使库的可用性下降。 如何解决冲突 重命名该类型,使其与具有外部可见类型的被引用命名空间的名称不冲突。...何时禁止显示警告 对于新开发,没有任何已知情况必须禁止显示此规则的警告。 在禁止显示该警告之前,请仔细考虑库的用户可能会因冲突名称感到困惑。 对于发布库,可能必须禁止显示此规则发出的警告。

    58000

    CA1052:静态容器类型应是 Static 或NotInheritable

    值 规则 ID CA1052 类别 设计 修复是中断修复还是非中断修复 重大 原因 非抽象类型只包含静态成员(可能的默认构造函数除外),而且没有使用 static 或 Shared 修饰符进行声明。...默认情况下,此规则仅查看外部可见的类型,但这是可配置的。 规则说明 规则 CA1052 假定仅包含不设计为继承的静态成员的类型,因为该类型不提供任何可在派生类型中重写的功能。...未计划继承的类型应该用 C# 中的 static 修饰符进行标记,以便禁止其作为基类型使用。 此外,应删除其默认构造函数。 在 Visual Basic 中,类应转换为模块。...如何解决冲突 若要解决此规则的冲突,请将类型标记为 static,并删除默认构造函数 (C#),或将其转换为模块 (Visual Basic)。...何时禁止显示警告 在以下情况下,可以禁止显示冲突: 类型设计为继承。 缺少 static 修饰符,表明该类型可用作基类型。 此类型不能用作类型参数。 静态类型不能用作类型参数。

    51020

    CA1711:标识符应采用正确的后缀

    值 规则 ID CA1711 类别 命名 修复是中断修复还是非中断修复 重大 原因 标识符的后缀不正确。 默认情况下,此规则仅查看外部可见的标识符,但这是可配置的。...规则说明 按照约定,只有扩展某些基类型或实现某些接口的类型的名称或者从这些类型派生的类型的名称,应以特定的保留后缀结尾。 其他类型名称不应使用这些保留的后缀。...下表列出了保留的后缀以及与它们关联的基类型和接口。...,用于与同一类型的早期版本区分开来 枚举类型的 Flag 或 Flags 命名约定为面向公共语言运行时的库提供通用外观。...这缩短了新软件库的学习曲线,让客户更加相信该库是由拥有托管代码开发专业知识的人员开发的。 有关详细信息,请参阅命名准则:类、结构和接口。 如何解决冲突 从类型名称中删除后缀。

    33600

    不是吧?不会多态,你还说自己会Java

    而这种把对某个对象的引用视为对其基类型的引用的做法被称作为 - 向上转型。因为父类在子类的上方,子类要引用父类,因此称为 向上转型。...start() 方法接收一个 Animal 的引用,自然也可以接收从 Animal 的导出类。...忘记对象类型 在 test.start()方法中,定义传入的是 Animal 的引用,但是却传入Monkey,这看起来似乎忘记了Monkey 的对象类型,那么为什么不直接把test类中的方法定义为void...Animal的导出类,那么执行eat()方法的时候如何知道调用哪个方法。...Animal作为基类,它的作用就是为导出类建立公用接口。所有从Animal继承出去的导出类都可以有自己独特的实现行为。

    37230

    CA1010:集合应实现泛型接口

    项 “值” RuleId CA1010 类别 设计 修复是中断修复还是非中断修复 非中断 原因 类型实现 System.Collections.IEnumerable 接口,但不能实现 System.Collections.Generic.IEnumerable...此规则会忽略能够实现 System.Collections.IDictionary 的类型。 默认情况下,此规则仅查看外部可见的类型,但这是可配置的。 还可配置其他接口以要求实现泛型接口。...有关详细信息,请参阅如何禁止显示代码分析警告。 配置代码以进行分析 使用下面的选项来配置代码库的哪些部分要运行此规则。...允许的接口格式: 仅接口名称(包括具有相应名称的所有接口,不考虑包含的类型或命名空间)。 完全限定的名称,使用符号的文档 ID 格式,前缀为 T:(可选)。...将基类更改为已同时实现泛型和非泛型接口的类型(如 Collection 类)。

    61050

    CA1061:不要隐藏基类方法

    值 规则 ID CA1061 类别 设计 修复是中断修复还是非中断修复 重大 原因 派生类型声明的方法与其基方法之一具有相同的名称和相同数量的参数;一个或多个参数是基方法中相应参数的基类型;所有剩余参数的类型都与基方法中相应参数的类型相同...规则说明 如果派生方法的参数签名只是在类型方面有所不同,而且与基方法的参数签名中的对应类型相比,这些类型的派生方式更弱,则基类型中的方法由派生类型中的同名方法隐藏。...如何解决冲突 若要解决此规则的冲突,请删除或重命名该方法,或者更改参数签名,使该方法不会隐藏基方法。 何时禁止显示警告 不禁止显示此规则发出的警告。 示例 以下示例显示与此规则冲突的方法。

    30110

    CA1061:不要隐藏基类方法

    值 规则 ID CA1061 类别 设计 修复是中断修复还是非中断修复 重大 原因 派生类型声明的方法与其基方法之一具有相同的名称和相同数量的参数;一个或多个参数是基方法中相应参数的基类型;所有剩余参数的类型都与基方法中相应参数的类型相同...规则说明 如果派生方法的参数签名只是在类型方面有所不同,而且与基方法的参数签名中的对应类型相比,这些类型的派生方式更弱,则基类型中的方法由派生类型中的同名方法隐藏。...如何解决冲突 若要解决此规则的冲突,请删除或重命名该方法,或者更改参数签名,使该方法不会隐藏基方法。 何时禁止显示警告 不禁止显示此规则发出的警告。 示例 以下示例显示与此规则冲突的方法。

    23340

    C#学习基础之一——面向对象编程及new的用法总结

    : MyClass { new public void Invoke() {} } 通过继承隐藏名称采用下列形式之一: 1.引入类或结构中的常数、指定、属性或类型隐藏具有相同名称的所有基类成员...2.引入类或结构中的方法隐藏基类中具有相同名称的属性、字段和类型。同时也隐藏具有相同签名的所有基类方法。 3.引入类或结构中的索引器将隐藏具有相同名称的所有基类索引器。...4.在同一成员上同时使用 new 和 override 是错误的。 注意:在不隐藏继承成员的声明中使用 new 修饰符将生成警告。...如果嵌套类型正在隐藏另一种类型,如下例所示,也可以使用 new 修饰符修改此嵌套类型。 示例 在该例中,嵌套类 MyClass 隐藏了基类中具有相同名称的类。...该例不仅说明了如何使用完全限定名访问隐藏类成员,同时也说明了如何使用 new 修饰符消除警告消息。

    1.3K21

    CA1062:验证公共方法的参数

    值 规则 ID CA1062 类别 设计 修复是中断修复还是非中断修复 非中断 原因 外部可见方法取消引用其中一个引用参数,而不验证该参数是否 null(Visual Basic 中 Nothing)...可以将此规则配置为从分析中排除某些类型和参数。 还可以指示 null 检查验证方法。 规则说明 对于传递给外部可见方法的所有引用参数,都应检查其是否为 null。...如何解决冲突 若要修复与此规则的冲突,请验证每个引用参数是否为 null。 何时禁止显示警告 如果确定取消引用的参数已由函数中的其他方法调用进行验证,则可以禁止显示此规则发出的警告。...= MyType 选项值中允许的符号名称格式(用 | 分隔): 仅符号名称(包括具有相应名称的所有符号,不考虑包含的类型或命名空间)。...= MyType 选项值中允许的符号名称格式(用 | 分隔): 仅类型名称(包括具有相应名称的所有类型,不考虑包含的类型或命名空间)。

    72630

    苹果被起诉!市值一夜蒸发8000亿元 | Swift 周报 issue 50

    这允许被调用者或被调用者分别在隔离边界上传输不可 Sendable 的参数或结果值,或将该值合并到 actor 隔离区域中。SE-0431 @isolated(any) 函数类型 提案正在审查。...该提案还讨论了如果初始值为 “Sendable”,则抑制与不安全静态变量相关的警告。然而,它是作为对现有提案的单独修订而提议的,而不是当前讨论的一部分。...Wade Tregaskis 是一个开发者,他正在尝试使用苹果框架,比如 CoreImage,但却遇到了兼容性问题。他试图访问某些常量,但是却遭遇警告称为 “不兼容并发模式”。...开发者社区也给出了建议,比如希望苹果能审计他们的SDK并在即将到来的 Swift 6、Xcode 16 及 2024 OS 版本中修复这些警告。...讨论表明,修复 “async let” 的行为不一定需要单独的进化提案,因为它可以被视为对现有行为的改进。 他们引用了之前讨论中的一句话,表明不需要新的语言机制就可以实现这样的修复。

    16432

    代码质量规则

    应使用 sealed 修饰符标记不希望被继承的类型,以免将其用作基类型。 CA1053:静态容器类型不应具有构造函数 公共或嵌套公共类型只声明了静态成员,但具有公共或受保护的默认构造函数。...CA1062:验证公共方法的参数 对于传递给外部可见方法的所有引用自变量,都应检查其是否为 null。...CA2215:Dispose 方法应调用基类释放 如果类型继承自可释放类型,则必须从它自己的 Dispose 方法中调用基类型的 Dispose 方法。...当具有多个修复可用且至少有一个修复是一项重大更改,有一个不是时,将同时指定“重大”和“非重大”。 原因 导致规则生成警告的特定托管代码。 说明 讨论警告背后的问题。...如何解决冲突 说明如何更改源代码以满足规则并防止它生成警告。 何时禁止显示警告 描述何时可以安全地禁止显示此规则警告。 示例代码 规则冲突示例和满足该规则的已更正示例。 相关规则 相关规则。

    2.2K30

    SWIG 官方文档第四部分 - 机翻中文人肉修正

    建议您修改您的界面以尽可能修复警告突出显示的问题,而不是抑制警告。 某些类型的 SWIG 问题是错误。这些通常是由于解析错误(错误的语法)或没有明显恢复的语义问题引起的。没有抑制错误消息的机制。...可以将 Lua 模块静态链接或动态链接到解释器中(通常 Lua 静态链接其库,因为动态链接并非在所有平台上都可用)。从 eLua 0.8 开始,SWIG 还支持 eLua。...如果您正在使用 eLua 并且已经使用 -elua 或 -eluac 来生成您的包装器,那么宏常量和枚举应该通过一个名为"const"的可循环访问。...引用 > spam3(f) -- 好的。值。 > spam4(f) -- 好的。数组(1 个元素) 返回值也会发生类似的行为。...目前不建议编辑此字段或添加一些用户代码来更改行为。虽然对于那些想尝试的人来说,这里是寻找的地方。 目前也无法更改数据的所有权标志(与大多数其他脚本语言不同,Lua 不允许从解释器内部访问数据)。

    5.4K40

    Delphi类型和引用

    二:类类型的声明 类类型的声明比较复杂,其语法如下: Type 类=class(基类) [成员列表] End; 从以上语法可以看出,类类型可以指定一个祖先类型...四:类类型的方法 类类型中的方法是个特定的名称,从形式上看也不过是一些过程或函数,不同的是方法是在类类型内部 声明的并只操纵类本身,因此在Object Pascal中方法有其特定含义。...当表达式的值为False时,不把属性当前的值存到Form文件中(扩展名.DFM),如果表达式的值为 True,就首先把属性的当前值跟Default子句指定的缺省(如果有的话)比较,如果相等,就不存贮,...二十:类成员的可见性 面对对象编程的重要特征之一就是类成员可以具有不同的可见性,在object pascal中,是通过这么几 个保留字来设置成员的可见性的:published, public, protected...注意:声明类类型时,如果基类是Tobject,则基类可以省略不写,但在声明类引用类型时不能省略。

    2.5K30

    python异常报错详解

    异常TypeError 当操作或功能应用于不适当类型的对象时提起。关联值是一个字符串,提供有关类型不匹配的详细信息。...异常UnboundLocalError 当引用函数或方法中的局部变量时引用,但没有值绑定到该变量。这是一个子类 NameError。...该winerror和 strerror值是从的返回值创建 GetLastError()并FormatMessage()从Windows平台的API函数。...异常ZeroDivisionError 当分割或模运算的第二个参数为零时提升。关联值是指示操作数的类型和操作的字符串。 以下例外被用作警告类别 异常Warning 警告类别的基类。...异常PendingDeprecationWarning 关于将来不推荐使用的功能的警告的基类。 异常SyntaxWarning 关于可疑语法的警告的基类。

    4.7K20

    Python一个万万不能忽略的警告!

    并且,这个警告还要引起我们足够重视。知道为什么会出现这个警告,并知道怎么解决,或许帮助你真正从pandas的被动使用者,变为一个Pandas专家。...2 警告是什么 首先要理解的是,SettingWithCopyWarning 是一个警告,而不是错误 Erro,警告的作用是提醒程序员,他们的代码可能存在潜在的错误或问题,但是这些操作仍然是该编程语言中的合法操作...) - 引用数据子集的任何赋值或访问方法,例如 data[1:5] 链式索引(Chaining) - 连续使用多个索引操作,例如data[1:5][1:3] 4 链式赋值 链式赋值是链式索引和赋值的组合...5 配置警告 Pandas 的 mode.chained_assignment 选项可以采用以下几个值之一: 'raise' - 抛出异常(exception)而不是警告 'warn' - 生成警告(默认...此外,用 Pandas 的核心开发人员之一 Jeff Reback 的话来说,“从语言的角度来看,直接检测链式索引是不可能的,必须经过推断才能了解”。幸运的是,解决警告只需要识别链式赋值并修复。

    1.6K30

    SqlAlchemy 2.0 中文文档(五十八)

    该行为包括已经 DB 转换的绑定参数值与返回的行值之间的比较,并不总是对于 SQL 列类型(如 UUID)是“对称”的,具体取决于不同的 DBAPI 如何接收这些值以及它们如何返回它们,因此需要在这些列类型上添加额外的...引用:#9736 [postgresql] [usecase] 当从 Range 或 MultiRange 实例推断数据库类型时,区分 INT4 和 INT8 范围以及多范围类型,如果值适合 INT4...以前,Mypy 无法从其泛型基类自动推断出这些返回类型。...参考:#10279 [orm] [bug] 为 selectin_polymorphic() 加载器选项添加了新的功能,允许其他加载器选项作为兄弟节点捆绑在其中,引用其子类之一,在父加载器选项的子选项中...对于反向引用挂起的集合成员添加警告,可以建立更大一致性,这些集合可能存在或不存在,并可能根据不同的关系加载策略在不同的时间进行刷新或不刷新。

    17910
    领券