gpt4 book ai didi

c# - 防止 C# 中的辅助类命名污染的推荐方法?

转载 作者:可可西里 更新时间:2023-11-01 08:33:54 26 4
gpt4 key购买 nike

我经常遇到这样的模式,即我有一个主类和几个较小的辅助类或结构。

我希望这些结构的名称尽可能简洁。因此,当我有一个名为 CarFinder 的类时,它大量使用了一些仅(或主要)在内部使用的特殊 Key 对象,我想将该对象称为 Key 而不是 CarFinderKey

一切都是为了消除所有额外的模糊,当我在阅读它的时候试图理解它时,它们会分散我的注意力。

当然,我不想用一个名为 Key 的小助手类污染其余代码 - 它很可能会发生冲突和混淆。

在一个完美的世界中,我希望有一个像internal to this namespace这样的关键字,但由于它不存在,所以我只能想到以下选项:


  1. 使用 internal 并将类放在不同的项目中。

优点:完美封装。

缺点:大量的组织开销和不必要的复杂依赖。

注意:我不是在谈论真正大型的自包含系统,这些系统无疑值得自己组装。


  1. 将其放在不同的子命名空间中,例如 CarFinding.Internal

优点:易于实现。

缺点:不小心导入命名空间时仍然会造成污染。


  1. 将辅助类作为子类放在 CarFinder 中。

优点 不会在内部造成污染,甚至可以提升为公共(public)辅助结构,通过 CarFinder.Key

暴露给外部世界

缺点 必须将辅助类放在同一个文件中,或者将其封装在外部文件中,并用 public partial class 围绕它。第一个使文件变得不必要的长,第二个感觉真的很难看。


  1. 随便叫它 CarFinderKey

优点易于实现。

缺点 在我看来,向 CarFinder 添加了过多的fuzz。仍然不必要地污染命名,只是使用不太可能冲突的名称。


推荐的指南是什么?

最佳答案

就我个人而言,我不介意 CarFinderKey 引起的额外“模糊”,原因如下:曾经在一个非常大的项目上工作,我们试图使用 namespace 来消除名称歧义。

因此,随着您扩展系统,您可以很容易地在代码编辑器中打开 10 个选项卡,所有选项卡都命名为“Key.cs”。那真的不好玩。

关于c# - 防止 C# 中的辅助类命名污染的推荐方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33211569/

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