如何在MVC4中实现partial class?
How to implement partial class in MVC4?
我有一个 class Employee.cs 是在我连接到数据库时由 EntityFramework 自动生成的,现在我想实现一个partial class 但我不能为那个 class 使用 "Employee.cs" 名称,因为它已经存在。我可以给它 其他名称 并且它会起作用吗?您能解释一下编译器如何知道 Employee.cs 的另一个部分 class 吗?
你可以给文件起任何你想要的名字,比如 Employee.custom.cs 但你必须在其中调用 class Employee 在与另一个文件中的 Employee class 相同的命名空间中,也带有 partial
修饰符,你应该可以开始了。
编译器只是收集所有具有相同名称的 partial
class 并将其编译为每个名称一个 class。
编译器始终使用 class 的全名。如果有一个名为 MyProject 的项目,class 的全名将类似于:
MyProject.Employee
如果你想用相同的名字创建class,你必须在命名中添加一个分隔级别,或者如果它必须是部分class与这个生成的class, 你也必须将它标记为部分。
您可以创建(在 Model/Employee.cs):
public class MyProject.AnySubPath.Employee {}
或者:
在文件 Model/Employee.cs
public partial class MyProject.Employee {}
在文件查看Model/Employee.cs
public partial class MyProject.Employee {}
对您来说重要的是要了解什么是部分均值以及编译器将如何处理您的 class:事实上,编译器只会将所有 partial
classes在一起,然后编译它们。成为 partial
的唯一好处是您可以将代码拆分到多个文件中。一个很好的例子是 Windows.Forms
,其中您有 "code-behind" 个文件 (Form1.cs),然后您有 "designer" 个文件 (Form1.Designer.cs)。
此外,您可以随意命名文件,1 class = 1 个文件是常见的标准,class 名称应符合文件名。
我有一个 class Employee.cs 是在我连接到数据库时由 EntityFramework 自动生成的,现在我想实现一个partial class 但我不能为那个 class 使用 "Employee.cs" 名称,因为它已经存在。我可以给它 其他名称 并且它会起作用吗?您能解释一下编译器如何知道 Employee.cs 的另一个部分 class 吗?
你可以给文件起任何你想要的名字,比如 Employee.custom.cs 但你必须在其中调用 class Employee 在与另一个文件中的 Employee class 相同的命名空间中,也带有 partial
修饰符,你应该可以开始了。
编译器只是收集所有具有相同名称的 partial
class 并将其编译为每个名称一个 class。
编译器始终使用 class 的全名。如果有一个名为 MyProject 的项目,class 的全名将类似于:
MyProject.Employee
如果你想用相同的名字创建class,你必须在命名中添加一个分隔级别,或者如果它必须是部分class与这个生成的class, 你也必须将它标记为部分。
您可以创建(在 Model/Employee.cs):
public class MyProject.AnySubPath.Employee {}
或者:
在文件 Model/Employee.cs
public partial class MyProject.Employee {}
在文件查看Model/Employee.cs
public partial class MyProject.Employee {}
对您来说重要的是要了解什么是部分均值以及编译器将如何处理您的 class:事实上,编译器只会将所有 partial
classes在一起,然后编译它们。成为 partial
的唯一好处是您可以将代码拆分到多个文件中。一个很好的例子是 Windows.Forms
,其中您有 "code-behind" 个文件 (Form1.cs),然后您有 "designer" 个文件 (Form1.Designer.cs)。
此外,您可以随意命名文件,1 class = 1 个文件是常见的标准,class 名称应符合文件名。