分部类,分部方法 - 修饰符partial

一、分部类

简单来说就是将一个类型或方法拆分到两个或多个源文件中,每个源文件只包含类型定义的一部分。

1、分部类的特征

  • 类的定义前要加partial。
  • 分部类可以定义在两个不同的.cs文件,也可以定义在同一个.cs文件中。
  • 分部类必须同属一个命名空间。

代码示例

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Person(1, "关羽", 23);
            p.SaySomeThing();

            Console.ReadKey();
        }
    }

    public partial class Person
    {
        public Person(int id, string name, int age)
        {
            Id = id;
            Name = name;
            Age = age;
        }

        public int Id { get; set; }

        public string Name { get; set; }
    }

    public partial class Person
    {
        public int Age { get; set; }

        public void SaySomeThing()
        {
            Console.WriteLine("我的名字叫" + Name + ",我今年" + Age + "岁");
        }
    }
}


二、分部方法

   分部方法的声明由两个部分组成:定义和实现。分部方法包含在分部类或分部结构中。分部方法的签名和它的可选实现可以位于同一个或两个不同的分部累中。如果未提供分部方法的实现,则编译器将自动移除方法签名,以及移除所有其他地方代码对该方法的调用。

分部方法的严格限制

  1. 声明必须以上下文关键字partial开头
  2. 声明不能有访问修饰符,因此是隐式私有的。
  3. 不能有返回值。
  4. 可以有ref参数,不能有out参数。
  5. 分部方法可以使用static和unsafe修饰符
  6. 参数名称在实现声明和定义声明中虽然可以不同,但仍然推荐使用一直的方法签名。

示例

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Person();
            p.Say();    //输出 你好

            Console.ReadKey();
        }
    }

    public partial class Person
    {
        //必须定义在分部类
        partial void Say1(); //方法签名

        partial void Say1()
        {
            Console.WriteLine("你好");
        }

        //因为不能具有修饰符,因此是隐式私有的,只能在内部调用
        public void Say()
        {
            Say1();
        }
    }
}



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值