zl程序教程

您现在的位置是:首页 >  其它

当前栏目

面向对象——分部类

面向对象
2023-09-14 09:05:45 时间

概念:可以将类、构造、接口拆分到两个或多个源文件中。每个源文件包含类定义的一部分,编译应用程序时Visual Studio 会吧所有部分类组合起来。这样的类称为分部类。其应用场合:

  • 当项目比较庞大时,使用分部类可以拆分一个类至几个文件中。这样的处理,可以使得不同的开发人员同时进行开发,避免了效率低下。
  • Visual Studio 的自动生成代码。如添加一个窗体是,Visual Studio会自动生成许多的代码使用分部类,将这些代码放在单独的文句中,可以使类更简洁,方便操作。

分部类使用partial 关键字定义。如下代码定义了一个分部类。

namespace JieKou

{

    class Program

    {

       

        static void Main(string[] args)

        {

            MyClass myClass = new MyClass();

            myClass.SayHello();

            myClass.SayHi();

        }

    }

    partial class MyClass

    {

        public void SayHello()

        {

            Console.WriteLine("Hello World");

        }

    }

    partial class MyClass

    {

        public void SayHi()

        {

            Console.WriteLine("Hi");

        }

    }

}

可以看到分部类的使用与普通类相同,只要在分部类中任意一个部分定义了相应的方法或者属性,都可以使用。用功能代码的存储。这是一种合理的分配方式。同样、接口或结构使用partial关键字来修饰

  partial interface IMyInterFace

    {

        void SayHello();

    }

    partial interface IMyInterFace

    {

        void SayHi();

    }

    class MyClass : IMyInterFace

    {

        public void SayHello()

        {

            Console.WriteLine("Hello World");

        }

        public void SayHi()

        {

            Console.WriteLine("Hi");

        }

}

使用分部类注意事项:

  • 如果一个类前面加了partial关键字,说明该类是分部类,虽然并没有该类的其他部分,单C#依然将其作为分部类来处理。虽然这样写不会报错,但应该避免这种用法,不然会增加.NetFramework的负担,因为.NetFramework会搜索其他部分。
  • 各个部分必须具有相同的可访问性,如public、private等。
  • 分部类的各个部分必须都用partial限定,如果一部分是partial另外一部分不是,就会出现错误。
  • 在两个部分分别使其继承了不同的类和接口,运行时.NetFramework能够很好地将其结合。
  • Partial关键字的位置必须位于紧接class、interface以及struct的位置。当违反上述规则后,将给出错误提示。