2009-03-04 24 views

回答

16

部分关键字通常用于代码生成实用程序中,以允许开发人员向生成的代码添加其他功能,而不用担心如果代码再次生成时该代码被擦除。

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

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

1

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

0

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

1

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

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

2

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

+0

Oo,绝妙的主意!我从未想过要这样做。 – 2009-03-04 23:02:21

0

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

我喜欢关于linq2sql中的部分类的好处之一是,您可以让部分类继承一个接口,并将接口映射到生成的类。如果您拥有多个数据提供者并且仍然希望为所有数据访问类使用相同的接口,那么这非常棒。

2

我发现的一种用法是,您可能不希望存在于生产代码中的代码,例如跟踪或开发日志代码。你可以把它放在分部类中,然后当你做一个生产构建时,你只需构建没有包含这些分部的东西,编译器就会自动地魔术般去掉对那些被排除的部分的调用。

+0

部分方法可能对那个特定的用例更好。 – JasonTrue 2009-03-04 23:28:18

0

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

0

当我知道我们将有几个开发人员在一个类上工作时,我使用部分类来减少版本控制的合并痛苦。例如,我们经常将我们的DAL类拆分成几个分部类文件。如果你不把它们放在不同的文件中,那么很容易就会遇到合并冲突,在检入版本ctl时需要一段时间才能修复。

当开发变得越来越混乱,因为类接近完成,我们摆脱了部分文件。我们只是用它来使VC/mulit-developer问题更容易