C# 部分类 和 部分方法

有一次面试的时候,面试官问我,知道部分类吗?

我说知道,用partial 关键字修饰的类就是部分类

他问,你知道为什么要有部分类吗?

我愣着了,这个问题我没想过,而且平时的时候都没怎么用到过部分类,我答不上来。。

现在我查阅资料了解了一下,下面分享一下我认识的部分类。

部分类是用partial声明的类,它允许我们把一个类分割成两个或多个类,当应用程序编译的完成的时候,多个部分类会结合成一个类,同时partial关键字也可以用于声明结构和接口。

那么下面问题来了,为什么要有部分类呢?

既然微软创造了这么一个东西,肯定有它存在的意义的

存在意义之一:

如果大家留意的话,会发现我们创建的webform程序或者windowform程序时,默认情况下会自动生成两个文件:webfrom1.aspx.cs和webform1.aspx.designer.cs,然后你会发现这两个类都用了关键字partial去声明了,没错,这就是部分类应用的所在,我认为它是为了code-behind技术而生的,因为声明了部分类,系统自动生成的代码和我们自己打的代码得以分离,已于代码的阅读和理解,提高开发效率。

存在意义之二:

处理大型项目时,把一个复杂的类可以分成多个部分类给多个程序员同时进行开发。不过,微软声明这是一个好处,除了上面说的例子之外,我没在其他地方见过的使用部分类,使用分部类的就让让多个部分类一起工作而已。。。

下面就是部分类在使用的时候注意的几点

一:如果声明了一个部分类,另一个类和部分类的类名相同的话编译是不通过的,必须两个都是部分类才能编译通过

二:多个部分类的访问修饰符要一致。

三:如果一个部分类为抽象或者密封类,那么所有的部分类都要声明为抽象或者密封类

四:如果部分类为派生类,那么其基类要相同

部分方法

在部分类中声明为partial的方法

当一个方法声明为partial时,不能有方法体,你只能声明方法,不能实现它,或者声明之后,再写一个同名的方法,这时就可以有方法体,可以有实现方法的代码,或者在这个部分类声明方法,在另一个部分类中声明和实现它。

部分方法的默认修饰符是private,所以不可以再用private去修饰它,而且部分方法的不可以有返回值,也就是说只能是void。

时间: 2024-10-02 13:13:50

C# 部分类 和 部分方法的相关文章

C#部分类与部分方法

部分类也可以定义部分方法.部分方法在部分类中定义,但没有方法体,在另一个部分类中执行.在这两个部分类中,都要使用partial关键字. public partial class MyClass { partial void MyPartialMethod(); } public partial class MyClass { partial void MyPartialMethod() { // Method implementation } } 部分方法也可以是静态的,但它们总是私有的,且不能

部分类、静态类、Object类、ToString()方法、扩展方法的使用

部分类.静态类.Object类.ToString()方法.扩展方法的使用 一:部分类: 前言:partial关键字允许将类.结构.方法或者接口放在多个文件中.一般情况下,一个类全部驻留在单个文件中.但有时,多个开发人员需要访问同一类的时候,或者某种类型的代码生成器生成了一个类的某部分.所以把类放在多个文件中是有益的. 如果声明类时使用了下面的关键字.这些关键字就必须应用于同一个类中的所有的部分: public  private  protected  internal  abstract  se

C#语言基础知识(5):Partial Class部分类

Partial Class,部分类 或者分布类.顾名思义,就是将一个类分成多个部分.比如说:一个类中有3个方法,在VS 2005将该类中3个方法分别存放在3个不同的.cs文件中.这样做的好处:1.一个大型的项目类可以同时分成不同的区块交由不同的程序员拽写,同时进行.2.若由系统自动产生的source,可以用独立的Partial Class加入,而不必更改到原先类.3.当类(Class)很大时,可以用Partial Class做功能性划分,这也是一种不错的分类方式. 如果您在开发项目的公用函数库,

c#部分类

c#提供了一个部分类,它只显示类的一部分,用关键字partical修饰 using System; public partial class Course { public int Id { get; set; } public string Name { get; set; } public double Points { get; set; } } public partial class Course { public void PrintCoures() { Console.WriteL

C# 部分类使用partial修饰

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace patial { class Program { static void Main(string[] args) { Student s = new Student(); s.Method2(); Console.ReadKey(); } } public partial class Student { p

密封类和部分类

1.密封类 sealed关键字修饰class类,不能被继承. 2. 部分类 partial关键字修饰class类,可以在同一个命名空间内使用相同名字的类,相当于把一个类拆成多个类来写. using System; using System.Collections; using System.Collections.Generic; namespace Dome { class person { static void Main(string[] args) { renlei s = new re

.Net学习笔记----2015-06-29(序列化和反序列化、部分类、密封类、重写ToString)

序列化: 就是将对象转换为二进制 反序列化: 将二进制转换为对象 他们的作用是传输数据. 序列化: (1).将这个类标记为可以被序列化的.在类的前面加[Serializable] 部分类: partial 放在类前面,public partial class Person 密封类: sealed,不能被继承,但是可以继承于其他类 连续熬夜有点精神不佳,真是老了....

partial部分类

<> using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace partial部分类 { //这两个Person(部分类)构成了一个完成的类 为什么要有部分类:就在联合开发的过程中,每个人都有对这个Person类开发的权利.每个人都需要用.所有就需要有部分类 public partial class Person { public string Name { g

Intellij IDEA设置忽略部分类编译错误

有些时候我们的项目中有些错误,但这些错误并不影响项目的整体运行(或许是没有使用到),默认情况下idea是无法通过编译的,因此也就无法部署运行,要达到正确运行项目的目的需要作一些设置才行. 设置Intellij IDEA忽略部分类编译错误 设置很简单,只需要两步即可. 1.设置Java编译器 如上图所示,Ctrl+Alt+S快捷键打开"Settings"对话框,找到设置中的"Java Compiler"设置,将"User compiler"设置由&