C#中partial关键字的实际用法

时间:2009-03-04 22:49:56

标签: c# .net class

我知道它允许visual studio将WinForms UI代码与UI事件等分开。但它有什么实际用途吗?

9 个答案:

答案 0 :(得分:16)

partial关键字通常用于代码生成实用程序,以允许开发人员为生成的代码添加其他功能,而不必担心如果再次生成代码,代码将被删除。

使用C#3,可以将partial关键字应用于方法,以允许生成的代码的用户填充生成器留下的空白。例如,Linq To Sql设计器提供了部分方法,允许您向框架在实现时调用的类添加逻辑。这样做的好处是C#编译器将完全删除未实现的部分方法,因此没有性能命中 没有实现它们。

部分类也可用于将非常大的类组织成单独的代码文件,尽管这种用法通常表明您的类太大并且承担了太多的责任。

答案 1 :(得分:2)

我能想到的partial关键字的最佳用途是嵌套类。如果没有partial关键字,则所有嵌套类必须与包含类在同一代码文件中。

答案 2 :(得分:2)

我发现的一个用途是您可能不希望在生产代码中存在的代码,例如跟踪或开发日志代码。你可以将它放在部分类中,然后当你进行生成构建时,你只需构建时不包含那些部分,编译器会自动地删除对那些被排除的部分的调用。

答案 3 :(得分:1)

我正在使用它来分区辅助类,其中一些方法需要大量代码。这是一种保留可读性的简单方法,因为每个文件只处理类的一部分功能。

答案 4 :(得分:1)

在VB中,您可以使用它将“普通”代码与需要通过“Option Strict Off”进行后期绑定的代码分开。

在C#中我只将它用于非常大的类。

答案 5 :(得分:0)

LINQ to SQL设计器广泛使用它来分割映射类之外的自定义行为(部分方法)。
简而言之,它的主要目的是代码生成器 希望这会有所帮助。

答案 6 :(得分:0)

我一直使用Linq2Sql的部分类和方法。否则,除了UI /代码隐藏类之外,我从未使用它。

我喜欢linq2sql中的部分类的一个好处是你可以让部分类继承一个接口,它会将接口映射到生成的类。如果您有多个数据提供程序并且仍希望对所有数据访问类使用相同的接口,那么这很好。

答案 7 :(得分:0)

WPF广泛使用部分类。 XAML生成一个可以添加的部分类。

答案 8 :(得分:0)

当我知道有几个开发人员在一个类上工作时,我使用部分类来减少版本控制的合并难度。例如,我们经常将DAL类拆分为多个部分类文件。如果您不将它们放在不同的文件中,那么在检入版本ctl时很容易发生需要一段时间修复的合并冲突。

当课程接近完成时,开发变得不那么混乱,我们摆脱了部分文件。我们只是用它来简化VC /多开发者问题