gpt4 book ai didi

c# - CA1023背后的原因是什么

转载 作者:太空狗 更新时间:2023-10-29 19:41:08 26 4
gpt4 key购买 nike

CA1023: Indexers should not be multidimensional

Indexers, that is, indexed properties, should use a single index.Multi-dimensional indexers can significantly reduce the usability ofthe library. If the design requires multiple indexes, reconsiderwhether the type represents a logical data store. If not, use amethod.

To fix a violation of this rule, change the design to use a lone integer or string index, or use a method instead of the indexer.

这对我来说似乎很奇怪,为什么这会显着影响任何事情?除了使多维索引更不直观?

更改设计以使用字符串?用它做什么?在另一端解析数字并丢失强类型?

有人能告诉我多维索引器有问题的原因吗?

最佳答案

If the design requires multiple indexes, reconsider whether the type represents a logical data store. If not, use a method.

问题是索引器不能具体命名(除了@volpav 注释,用于与本身不支持它们的语言交互——默认情况下,它们被称为Item),而方法必须是。这意味着如果索引器的含义不是很明显(“代表逻辑数据存储”),客户端可能难以猜测它的含义。如果索引器具有多个参数和/或存在多个索引器重载,这可能会特别令人烦恼。当然,命名索引器参数可以帮助解决问题(虽然索引器本身不能在 C# 中具体命名),但考虑到方法可以暗示返回值的含义方法本身(考虑 GetCustomersByCountryAndAge 与 this[string, int] )。这极大地有助于浏览源代码时的可读性。

为索引器编写良好的 XML 文档也会有所帮助。

To fix a violation of this rule, change the design to use a lone integer or string index

这个措辞有点糟糕的句子似乎是结合了 int 和 string 是索引器最常见的参数类型的观察结果的建议。它可能只是读作“更改设计以使用单独的索引”。

关于c# - CA1023背后的原因是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20949493/

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