• 友链

  • 首页

  • 文章归档
h u a n b l o g
h u a n b l o g

欢

HI,Friend

04月
11
C#

分部类和分部方法

发表于 2022-04-11 • 字数统计 1758 • 被 1,413 人看爆

分部类

类的声明可以分割成几个分部类的声明
类型修饰符:partial
  • 每个分部类的声明都含有一些类成员的声明。
  • 类的分部类声明可以在同一文件中也可以在不同文件中

每个局部声明必须被标为partial class,而不是单独的关键字class。

例1

partial class MyPartClass
{
    member1 declaration;
    member2 declaration;
    ....
}


partial class MyPartClass
{
    member1 declaration;
    member2 declaration;
}

注意

  • 类型修饰符partial不是关键字
  • 组成类的所有分部类声明必须在一起编译
  • 使用分部类声明的类必须有相同的含义,就好像所有类成员声明在一个单独的类声明体内

例2

//file1.cs原本写的
class MyPartClass
{
    public void Output1(int inva1)
    {
        Console.writeLine("{0}".inVa1)
    }

    public void Output2(int inva1) {
        Console.MriteLine("{0)",inva1);
    }
}


//采用分部类后------------
//file2.cs文件里
partial class MyPartClass
{
    public void Output1(int inva1)
    {
        Console.writeLine("{0}".inVa1)
    }

}

//file3.cs文件里
partial class MyPartClass
{
    public void Output2(int inva1) {
        Console.MriteLine("{0)",inva1);
    }
}

分部方法

声明在分部类中不同部分的方法
分部方法的不同部分可以声明在不同的分部类中,也可以声明在同一个类中

组成

  • 定义分部方法声明。
    • 给出签名和返回类型。
    • 声明的实现部分只是一个分号。
  • 实现分部方法声明。
    • 给出签名和返回类型。
    • 是以正常形式的语句块实现。

注意

  • 定义声明和实现声明的签名和返回类型必须匹配。签名和返回类型有如下特征。

    • 返回类型必须是void。
    • 签名不能包括访问修饰符,这使分部方法是隐式私有的。
    • 参数列表不能包含out参数。
    • 在定义声明和实现声明中都必须包含上下文关键字partial,直接放在关键字void之前。
  • 可以有定义部分而没有实现部分。

例

partial class MyClass
{
    partial void PrintSum(int x, int y);        //返回值必须是void  未实现部分
    public void Add(int x, int y) {
        PrintSum(x, y);
    }
}

partial class MyClass
{
    partial void PrintSum(int x, int y)        //返回值必须是void
    {
        Console.WriteLine($"{x + y}");          //实现部分
    }

}

class Program
{
    static void Main() {
        MyClass mc = new MyClass();
        mc.Add(5, 6);
    }
}

结果

11

分享到:
C#中派生类继承基类操作
索引器
  • 文章目录
  • 站点概览
欢

网红 欢

你能抓到我么?

Email RSS
看爆 Top5
  • mac系统版本与Xcode版本有冲突 4,091次看爆
  • JAVA_HOME环境配置问题 3,741次看爆
  • AssetBundle使用 3,509次看爆
  • VSCode配置C++开发环境 3,264次看爆
  • Lua反射 3,140次看爆

Copyright © 2025 欢 粤ICP备2020105803号-1

由 Halo 强力驱动 · Theme by Sagiri · 站点地图