我有一个用C#编写的VSTO(Excel)项目。三个问题:
我有很多变量填充一次,然后在整个项目中广泛引用。所以我创建了一个公共静态类,我打电话给#34; Omni" - 因为这既是描述性的,也是简短的。这样的推荐方法是什么?
我将常用函数放在一个名为" Utilities"的公共静态类中。然后我用了#34;这个"关键字作为第一个参数,使它们成为扩展方法。然后可以从任何地方访问它们 - 无需使用"实用程序。"前缀(虽然我不确定为什么)。同样的问题:这是首选方式吗?
最后,我有一些常用的子程序,即public void方法。因此传入并处理参数,但不返回任何内容。这些公共代码是否应该放在自己适当命名的公共静态类中,然后以类名作为前缀进行调用?如果是的话,是否有关于该类名称的约定?
我意识到这些是新手类型的问题(我一直在搜索!)。感谢。
答案 0 :(得分:0)
关于你的观点
我有很多变量被填充一次然后被引用 整个项目广泛。所以我创建了一个公共静态类 我打电话给#34; Omni" - 因为这既是描述性的,也是简短的。是 这样的推荐方法是什么?
是的,通常的做法是集中处理例如字符串常量 经常使用。
如果你有更多这些,我会开始将它们组织成不同的 类。
如果您希望它具有灵活性,例如有情况下有
常量之间的映射,如Green = 1
,我会转向某些
枚举值技术。
有关这个想法的更多信息可以在in this article
如果应用程序的不同启动之间的值没有变化, 检查你是否可以使用资源,这通常是一个不错的选择 对于字符串常量。
我将常用函数放在我命名的公共静态类中 "公用设施&#34 ;.然后我用了#34;这个"关键字作为第一个参数, 使它们成为扩展方法。然后可以从中访问它们 任何地方 - 不使用"公用事业。"前缀(虽然我不是 完全确定为什么)。同样的问题:这是首选方式 此?
扩展方法是一种方便的方式来完成转换。 只是不要将所有内容都作为扩展,只需将转换作为经验法则。
最后,我有一些常见的子程序,即public void方法。 因此传入并处理参数,但不返回任何内容。 这些公共代码是否应该自己适当地命名为public 静态类,然后以类名作为前缀进行调用?如果 那么,是否有关于班级名称的约定?
与其他人相反,这看起来像是一个设计缺陷。 也许您可以提供有关这些子例程的更多信息。
在面向对象的代码中,代码分布在它正在工作的对象附近 用。如果你非常依赖静态类中的代码,可能就在那里 是错的。你的静态类有成员吗?他们分享一些吗? 不同的静态类调用之间的知识?