C# 类文件中的接口

C# 类文件中的接口,c#,interface,C#,Interface,我的接口和该接口的具体实现是否应该分为两个单独的文件?如果只有一个实现:为什么是接口 如果有多个实现:其他实现放在哪里?如果只有一个实现:为什么是接口 如果有多个实现:您将其他实现放在哪里?如果您希望其他类实现该接口,这可能是一个好主意,如果只是为了干净。查看您的接口的任何人都不必每次都查看您的接口实现。如果您希望其他类实现该接口,这可能是一个好主意,如果只是为了干净。查看您的界面的任何人都不必每次都查看您的界面实现。如果您所说的不同文件是指程序集中的不同xxx.cs文件,那么通常由于我自己的做

我的接口和该接口的具体实现是否应该分为两个单独的文件?

如果只有一个实现:为什么是接口


如果有多个实现:其他实现放在哪里?

如果只有一个实现:为什么是接口


如果有多个实现:您将其他实现放在哪里?

如果您希望其他类实现该接口,这可能是一个好主意,如果只是为了干净。查看您的接口的任何人都不必每次都查看您的接口实现。

如果您希望其他类实现该接口,这可能是一个好主意,如果只是为了干净。查看您的界面的任何人都不必每次都查看您的界面实现。

如果您所说的不同文件是指程序集中的不同xxx.cs文件,那么通常由于我自己的做法,我会说是-但这取决于您使用的内部标准。如果您只是为自己编程,那么我会说这是一个很好的编码实践,它保持了所有内容的整洁和易于阅读。任何给定文件中的代码块越小,就越容易理解(在合理的范围内),显然,您可以开始进入局部类,如果您不控制它,事情可能会变得荒谬

通常,我将项目保存在一个逻辑文件夹结构中,其中项目的一部分可能被分配到文件夹DAL或BM中,并且在其中我可能有许多逻辑命名的文件夹,每个文件夹包含许多文件:一个接口、一个实现和特定于这些文件夹的任何帮助器类


但是,尽管如此,如果您在一个开发团队中工作,您的团队/内部最佳实践应该被采用。

如果您所说的不同文件是指程序集中的不同xxx.cs文件,那么通常由于我自己的实践,我会说是-但这取决于您使用的内部标准。如果您只是为自己编程,那么我会说这是一个很好的编码实践,它保持了所有内容的整洁和易于阅读。任何给定文件中的代码块越小,就越容易理解(在合理的范围内),显然,您可以开始进入局部类,如果您不控制它,事情可能会变得荒谬

通常,我将项目保存在一个逻辑文件夹结构中,其中项目的一部分可能被分配到文件夹DAL或BM中,并且在其中我可能有许多逻辑命名的文件夹,每个文件夹包含许多文件:一个接口、一个实现和特定于这些文件夹的任何帮助器类


然而,尽管如此,如果您在开发人员团队中工作,那么您的团队/内部最佳实践应该被采用。

单独的文件。。。FTW!根据代码的可扩展性,您甚至可能希望创建单独的项目/程序集。至少它应该在一个单独的名称空间中

接口的全部要点是,使用接口的代码不关心实现。因此,它们应该尽可能松散地关联,如果它们在同一个文件中,就不会这样


但正如@balabaster所指出的,这取决于团队的实践(尽管它们并不总是“最佳实践”)是什么。。。FTW!根据代码的可扩展性,您甚至可能希望创建单独的项目/程序集。至少它应该在一个单独的名称空间中

接口的全部要点是,使用接口的代码不关心实现。因此,它们应该尽可能松散地关联,如果它们在同一个文件中,就不会这样


但正如@balabaster所指出的,这取决于您团队的实践(尽管它们并不总是“最佳实践”)是什么。

是的,对于称为
部分类的类而言,

看一看

是的,对于称为
部分类的类

看看一般的经验法则,是的。接口意味着它可以由其他类实现,当它们明显位于单独的文件中时,接口更干净,更易于管理


更重要的是,根据应用程序将采取的分离和隔离级别,您甚至希望将接口放置在自己的项目中。然后,消费项目将引用接口项目,而不是每个携带该接口实现的程序集。

一般经验法则,是的。接口意味着它可以由其他类实现,当它们明显位于单独的文件中时,接口更干净,更易于管理


更重要的是,根据应用程序将采取的分离和隔离级别,您甚至希望将接口放置在自己的项目中。然后,消费项目将引用接口项目,而不是引用每个包含该接口实现的程序集。

是的,即使有人给出相反的论点,例如只有一个实现,或者他/她预见在很长一段时间内只有一个实现,或者他/她是唯一的用户/开发人员,如果有多个实现、多个用户等等,那么很明显,您希望将它们保存在单独的文件中。那么,为什么只在一个实现中就应该区别对待它呢

是的,即使有人给出相反的论据,例如只有一个实现,或者他/她预见在很长一段时间内只有一个实现,或者他/她是唯一的用户/开发人员,等等。如果有多个实现,多个用户,等等,那么很明显,您希望将它们保存在单独的文件中。那么,对于一个执行者,为什么要区别对待它呢