不确定这是否遵循规则,但我需要一些与名称有关的帮助。我应该如何处理项目名称vs命名空间vs类。例如,我想制作一个datacleaner程序。所以我将它命名为Datacleaner,然后将其命名为DC,然后将Cleaner.cs命名为文件名,这只会让人感到困惑。有什么最佳做法,我可以在这里跟随!?有用的心态或命名理论会非常有帮助。c中的命名约定#
c中的命名约定#
回答
微软拥有出色的一套准则 - 请参阅下一个环节: Guidelines for Names 另见Naming section
我想你会发现有你需要的所有信息。
已经问StackOverflow上这个问题,看here
这里是约定的从另一个SO问题的简短摘要:
这是稍微偏离主题,但我给你在这里拍摄。
我们需要看的第一件事是根名称空间。根据你在做什么,这个根名字空间可以在多个项目中共享。一个很好的例子是System
。你可能会把你的公司名称放在那里,或者你可能选择一些更具折衷性的东西。如果我正在编写库代码,则避免使用诸如DataCleaner
之类的东西,因为库应该是通用的并且不涉及常见的表单。
所以,你正在写一个数据清理器。大!有一个共同的图书馆并有一个Data
命名空间(也许你希望将来添加更多与数据相关的东西)没有错,然后你有你的Cleaner
类。
如果我是您的API的用户,我很乐意明白<library>.Data
是一个命名空间,我需要寻找Cleaner
。
您应该Mike Roberts'系列如何设置.Net开发树。这有点过时,但概念仍然成立。他的文章的链接在我的答案在这里:https://stackoverflow.com/a/9982500/467473(他似乎重新安排他的博客,并打破其中的链接,虽然内容仍然存在)。另请参阅Tree Surgeon,这是一种使用Mike Roberts所倡导的原则创建解决方案的工具。
概括地说,正是如此铺陈的源代码树:
从根本上说,你的目录结构应该是这样的:
Meta/Development Root
通常映射到源代码控制系统的根目录。Solution
一个目录包含您的整个解决方案。应该命名为匹配解决方案。Solution.sln
解决方案文件本身。nant.build
解决方案的nAnt构建文件。lib
lib
目录包含由解决方案中不同项目引用的第三方程序集/ dll。它受源代码控制。项目参考应该指向这里。tools
tools
目录包含构建解决方案所需的所有第三方工具。它也在源代码控制之下。该tools
目录应该包含你的项目—和构建脚本应该引用这些,而不是安装在开发机器上的版本(S)使用nAnt
,nUnit
等的版本。bin
bin
目录包含解决方案的构建过程的输出。每个项目必须配置为指向此处。debug
调试版本release
发布版本
obj
在理想世界中,每个项目的obj
将在这里指出,以及该在源树的地方。可悲的是,Visual Studio并没有提供这样的官方方式(尽管我被告知,如果足够足够的话,VS可能会被黑客攻击)。src
src
目录是解决方案实际源代码的根目录。project1
project1
的目录。project
.csproj`
该项目文件。*.cs
等文件。源文件。
- ...
project-n
的src
目录包含实际的源代码。每个项目都应该用完整的命名空间命名。无论是将它们放在平面上还是构建文件系统中的整个名称空间结构,都取决于您。这个想法是命名空间应该引导你到源文件。
这里其他的答案是对所有专为C#你可能要遵循的命名约定提出由微软(和默认情况下自动使用,如果你正在使用Visual Studio开发),除非你有一个令人信服的理由不。
项目命名空间应匹配的项目名称或应该与一些标准化的前缀匹配预谋的项目名称。
约定类文件,每个文件1类和文件名称应与类名。
你被禁止给名字命名,因为它的命名空间,我认为是你遇到的问题提示这个问题。解决方案可能会给该项目一个更通用的名称。
给出我们在哪里工作的更具体的例子。
我们在这里生产的任何产品通常都有一个包含两个或更多项目的解决方案。 任何项目的默认名称空间如下所示:...
如果DataCleaner产品具有处理相同域的Windows服务和命令行工具,则可能有三个项目:控制台,服务和具有名称空间的域的
Company.Team.DataCleaner.Console
Company.Team.DataCleaner.Service
Company.Team.DataCleaner.Domain
对于类命名(通过扩展它们驻留在文件),如果你按照上面的方案,您已经有所避开你DataCleaner
命名空间有DataCleaner
类的问题,但你会发现应用Single Responsibility Principle有用。简而言之,任何阶级都应该只做一件事。如果你有一个名为Cleaner
或DataCleaner
他们可能会试图做太多,打破它会导致具体到所得到的类
- 1. c#命名约定
- 2. C#WinForms命名约定
- 3. C#类命名约定
- 4. 验证命名约定? C#
- 5. C#Newtonsoft.Json JObject命名约定
- 6. 在C#命名约定
- 7. C#项目命名约定
- 8. C++中的变量命名约定
- 9. C#中的命名约定是什么?
- 10. C#中windows控件的命名约定
- 11. C/C++:数组的命名约定?
- 12. 命名约定
- 13. 命名约定
- 14. ReactJs中的命名约定
- 15. MVC5中的命名约定
- 16. C#命名约定(标题与名称)
- 17. C#命名约定名称空间
- 18. C#转换函数的命名约定
- 19. 关于C++命名约定的问题
- 20. Objective-C的命名约定方法
- 21. Objective-C的标准命名约定
- 22. 目标C方法的命名约定
- 23. 数字函数的C命名约定?
- 24. c风格命名约定的要点
- 25. .NET/C#/ WPF项目的命名约定
- 26. C#缩写词的命名约定
- 27. TSQL命名约定〜这个命名约定叫什么名字?
- 28. 遵循Ruby属性命名约定的C#JSON.NET约定?
- 29. Linq2sql命名约定
- 30. PHP命名约定?
项目名称和命名空间的名称一般应为相同的名称,如要把文件名和类班级名称。 – SLaks
[c#中的命名约定]的可能重复(http://stackoverflow.com/questions/1618316/naming-convention-in-c-sharp) –