Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何组织C#类课程_C# - Fatal编程技术网

如何组织C#类课程

如何组织C#类课程,c#,C#,关于如何用C#来组织课堂,有没有一般的做法?每个.cs文件应该只有一个泛型类吗?我看到我有Form1.cs,其中包括所有与“Form1”相关的类。但是,我可以创建一个名为Misc.cs的文件,其中包含所有Misc类。不知道该走哪条路,所以一切都井然有序 或者我应该以一种特定的方式组织它们?例如,我正在访问一个MySQL数据库,所以我正在创建一个MySQL包装器,我将它存储在MysqlWrapper.cs中,并命名与之匹配的类。我应该为我创建的每个类创建一个新的.cs吗 或者我应该只合并那些使用类

关于如何用C#来组织课堂,有没有一般的做法?每个.cs文件应该只有一个泛型类吗?我看到我有Form1.cs,其中包括所有与“Form1”相关的类。但是,我可以创建一个名为Misc.cs的文件,其中包含所有Misc类。不知道该走哪条路,所以一切都井然有序

或者我应该以一种特定的方式组织它们?例如,我正在访问一个MySQL数据库,所以我正在创建一个MySQL包装器,我将它存储在MysqlWrapper.cs中,并命名与之匹配的类。我应该为我创建的每个类创建一个新的.cs吗

或者我应该只合并那些使用类似“using”名称空间(如System.Text)的名称空间;
使用System.Windows.Forms;etc?

通常,我会为每个类创建一个单独的.cs文件。此外,我组织文件以匹配类名称空间

随着项目变得越来越大,这简化了组织,因为您总是知道在项目中的何处可以找到类。随着越来越多的人致力于解决方案,这一点也变得越来越重要。每个文件一个类也是有益的,因为文件夹结构让您感觉到名称空间的复杂性,这有助于我了解何时需要拆分名称空间,因为它们变得太复杂了


我看到我有Form1.cs,其中包括所有与“Form1”相关的类


我建议不要以这种方式进行组织,而是将这些文件分为不同的文件。如果您有相当多的与特定操作相关的类(由FROM1执行或访问),我会考虑将这些类放入自己的命名空间中。我还强烈建议将“Form1”重命名为更有意义的名称,例如“EmployeeForm”。这将使您的代码更易于理解和维护。

一般接受每个文件一个类。有些类使用“partial”关键字分布在多个文件中。我的文件夹结构与名称空间结构松散匹配。

我没有严格遵循每个文件一个类的规则。如果我正在处理一个包含大量代码的非常大的类,我可能会给它自己的文件,。不过,一般来说,只要多个类以逻辑方式相互关联,我就不会在同一个文件中保留多个类。这通常适用于小型类,但对于大型类可能不是最好的方法。

一般来说,如果每个文件有一种类型,则代码更易于维护(便于其他人阅读)。(类/结构/枚举)


但是,对于分部类,我有时会根据功能的主要部分将大型类分解为多个文件。如果一个类有私有嵌套类型,我几乎总是将这些嵌套类型放在单独的文件中。

我通常每个文件有一个类。唯一的例外可能是,如果一个类有一个私有嵌套类,我通常会将其保存在同一个文件中,而不是使用partial关键字将其拆分为另一个文件。
这样我就更容易找到东西。

编辑-此答案旨在补充其他人已经发布的好答案。

其他人似乎都在回答具体问题。我想你会有更多的“最佳实践”设计问题

官方指南可在此处找到:

特别是,深入研究命名指南,然后深入研究名称空间命名指南和类命名指南


正如其他人所提到的,请为每个文件设置一个类。它使那些跟随您的可怜的维护开发人员的工作变得更轻松。

您只需要以下几个原则:

可维护性:应该很容易使项目保持最新状态并修复bug。问题:找到一个给定的类/函数需要很多时间吗?如果有一个bug,它是否可能发生在程序员(不一定是编写者)会看到的地方

复杂性:应该清楚程序的功能。有时候把它分开会有帮助。有时候把事情放在一起会有帮助。问题:当有人看到它时会感到困惑吗?他们会想知道所有的部分是什么吗


这真的只是常识。另外,请注意,某些IDE工具将允许您将东西保持在混乱状态,并且仍然能够找到东西(例如,引用查找器)。你必须决定什么程度的混乱是可以接受的,什么时候是重构的时候。

你不应该在一个文件中组合使用类似“使用”名称空间的类,因为如果你必须更改一个类的实现,你必须将类移到其他文件中


我每个类保留一个文件,因为它对源代码管理系统非常有用。此外,我尽量避免使用分部类。如果一个类太大,那么设计就有问题。

我可能会因为这样说而被鞭打,但至少在Visual Studio中,这可能不像以前那么重要了

我的大多数文件都只有一个类,但是对于普通枚举和仅由另一个类使用的简单存储类,我只是将它们与主类放在同一个文件中。否则,如果我想在其他地方使用同一个类,我会移动多个文件并尝试猜测我需要哪些文件

您可以在标识符上单击鼠标右键,然后单击“转到定义”以导航到该标识符,也可以单击ctrl+逗号进行搜索,或者使用类视图


我会将相关的.cs文件分组到文件夹中,这类更大的事情似乎更重要一些。我还确保文件夹名称始终与名称空间匹配,也就是说,我保留Visual Studio在文件夹中创建新类文件时提供的默认名称空间。

我有时还将类似的类文件合并到VS中的一个分支中

例如-如果您有3个文件: Message.xaml, Message.xaml.cs, MessageButton.cs, MessageImage.cs, MessageResult.cs

Message.xaml.cs已在insi中显示
   <DependentUpon> </DependentUpon>