4

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

我是部分课程的新手,想知道是否有人可以让我大致了解我为什么要使用它们以及在此过程中我会获得什么优势。

我需要做的是,我将我的数据从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()
            {
            }
        }
    }
4

3 回答 3

5

部分类用于将(大)类拆分为两个或多个通常写在单独文件中的较小类。它们不必位于单独的文件中。你可以这样做:

public partial class SaveData
{
    public void SpClient()
    {

    }
}

public partial class SaveData
{
    public void SpCountry()
    {

    }
}

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

做什么的:

它有时可以帮助将您的代码从单个类分类到单独的块中,即使它们基本上都构成同一类的一部分。在文件中包含SpClient功能SpClient.cs将帮助您更好地理解该文件中的代码将做什么(类似地SpCountrySpCountry.cs..

不过,这很少需要。一种特殊情况是 VS 自动生成设计器代码到单独designer.csForm类中,以防 WinForms。这意味着您不必在应用程序逻辑所在的最重要的类中看到大量不重要的代码(您很可能不会处理这些代码)。所以一个Form类看起来像:

public partial class Form1 : Form

这也将出现在designer.cs

另一个可能的巧妙用途是:

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

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

您也可以拥有静态类的部分类:

static partial class Extensions //in StringExtension.cs
{

}

static partial class Extensions //in MathExtension.cs
{

}

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

static partial class Extensions //in StringExtension.cs
{

}

partial class Extensions //in MathExtension.cs
{
    //which will be static
}

在您的情况下,我认为没有特殊理由将关注点分成不同的部分类。最好在一节课上写。而且您必须编写代码才能使事情正常进行。

于 2012-12-29T06:09:42.937 回答
1

'partial' 关键字所做的就是将你的类代码分散到多个文件中。非常适合组织。否则,它就像一堂课。

你可以重用一个类。假设它不是静态的,您可以将其实例化为不同的对象。如果它是静态且可访问的,则可以调用它的方法。

于 2012-12-29T05:22:08.887 回答
1

部分类对于将同一个类拆分到多个文件中很有用,它与代码重用无关。您描述的问题是一个典型的 CRUD 操作,您需要将表单字段映射到数据存储中的字段(sql server、xml、文档数据库(无 sql)等)。DAL 是一个很好的开始。只需将您的表单数据保存在 DTO(数据传输对象)中并将其传递给您的 DAL 以保留数据。不要担心部分类,它们很少有用。如果您的类需要跨多个文件拆分并且无法控制地增长,这意味着它们做得太多了。尊重 SRP(单一责任原则),并让您的课程集中注意力。祝你好运!

于 2012-12-29T05:27:12.953 回答