如何使用偏类?

Paz*_*Paz 4 .net oop class partial c#-4.0

可能重复:
为什么要使用部分类?

我是部分课程的新手,想知道是否有人可以给我一个大概的说明为什么我会使用它们以及我在这个过程中会获得什么好处.

我需要做的是,我将我的数据从Windows窗体保存到多个表说5个表.我想在其他地方重用代码.

我已经创建了一个DAL类,现在我如何实现这个部分类来保存数据?

感谢您提前的支持.. :)

我创造了这样的东西:使用起来好吗?

class clsDAL
    {
        public partial class SaveData
        {
            public void SpClient()
            {

            }
        }

        public partial class SaveData
        {
            public void SpCountry()
            {
            }
        }

        public partial class SaveData
        {
            public void SpDuration()
            {
            }
        }

        public partial class SaveData
        {
            public void SpProfile()
            {
            }
        }

        public partial class SaveData
        {
            public void SpWorkload()
            {
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

naw*_*fal 5

部分类用于将(大)类拆分为两个或多个通常用单独文件编写的较小类.他们没有必要在单独的文件中.你可以这样做:

public partial class SaveData
{
    public void SpClient()
    {

    }
}

public partial class SaveData
{
    public void SpCountry()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

在同一个文件中.但这很少有意义.将它分成多个文件会更好.

做什么的:

它有时可以帮助您将代码从单个类分类为单独的块,即使它们基本上都构成了同一个类的一部分.SpClientSpClient.cs文件中具有功能将帮助您更好地理解该文件中的代码(以及类似SpCountry的代码SpCountry.cs).

但这很少需要.一种特定的情况是,VS自动生成设计师码成单独designer.cs用于FormWinforms中的情况下的类.这意味着您不必在应用程序逻辑所在的最重要的类中看到大量不重要的代码(您最不可能处理的代码).所以一个Form类看起来像:

public partial class Form1 : Form
Run Code Online (Sandbox Code Playgroud)

也会出现designer.cs.

另一个可能聪明的用途是:

public partial class SaveData : IEquatable<SaveData>
{
    //implement IEquatabale here 
}

public partial class SaveData : IComparable<SaveData>
{
     //implement IComparable here 
}
Run Code Online (Sandbox Code Playgroud)

您也可以为静态类创建部分类:

static partial class Extensions //in StringExtension.cs
{

}

static partial class Extensions //in MathExtension.cs
{

}
Run Code Online (Sandbox Code Playgroud)

您只需要static在其中一个类上使用关键字.编译器假定此类型的每个其他部分类都是静态的.换句话说,你可以这样做:

static partial class Extensions //in StringExtension.cs
{

}

partial class Extensions //in MathExtension.cs
{
    //which will be static
}
Run Code Online (Sandbox Code Playgroud)

在你的情况下,我认为没有特别的理由将问题分成不同的部分类.最好把它写在一个班级.你必须编写代码才能使事情发生..