(约定)C#类名

我不太确定我应该对一组分组的类做些什么。

我的情况:我有11个类只与Character.cs类有关,但所有这些类(包括Character.csCharacterManager.cs )都在名称空间Models.Characters

这是命名类的更“正确”或首选方式:

(例子):

CharacterDetails.cs CharacterSprites CharacterAppearance CharacterClientRights CharacterServerRights

要么:

Details.cs Sprites Appearance ClientRights ServerRights

(它们都在Models.Characters被注意到(例如, Models.Characters.CharacterDetailsModels.Characters.Appearance

提前致谢。

就个人而言,它“取决于”。 通常我会在所有内容中添加单词Character以保持一致性,但是如果你已经在Character名称空间下拥有了所有内容,那么Character前缀似乎是多余的。

我可以很容易地看到使用Models.Character.[X]的较短约定Models.Character.[X]如果永远不会有另一个名为Details类,如果有例如UserDetails那么在回顾代码周或月时, DetailsUserDetails可能会令人困惑从现在开始,我个人更喜欢CharacterDetails选项。

最后,这是您的个人偏好,更准确地描述您的域名, DetailsCharacterDetails Details

就个人而言,我坚持使用第二种方法,因为命名空间的用途是:对相关的类集进行分组。 第一种方法只是让类名更长,而且效益可以忽略不计。

您的命名空间已经将其类分组到Characters下,因此我不会使用Character moniker命名您的类。

这里可能没有正确或错误的答案。 我发现自己更喜欢你的第一种风格,但我也使用了第二种风格。 我想在这种特定的情况下,如果我是你的API的调用者,我会发现阅读使用第一种风格的代码更容易。

这真的是个人喜好。

我愿意

 CharacterDetails CharacterSprites CharacterAppearance CharacterClientRights CharacterServerRights 

因为它更具可读性。

你通常会有一个使用声明

 Models.Characters.Appearance 

除非你打算做完整的表示法。

我赞成任何可以提高可读性的东西。 它可能对项目和您正在使用的团队很重要。 如果它只是你而不是你最喜欢的,并将帮助你将来维护代码。

只要您选择一个并且在整个代码中一直使用它,那么无论您选择哪一个都是正确的。

我个人的选择是你的第二选择。 如果您的命名空间是字符,我认为没有理由在类名中使用前缀字符。

想想可能通过命名类创建的歧义。 例如,如果我有一个名为“Thread”的类表示“CharacterThread”(假设),如果我有一个其他类使用两个名称空间

Models.Characters System.Diagnostics

每次我使用它时,我都必须完全限定Thread名称…这有时会很痛苦