Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何使用分部类?_.net_Oop_Class_C# 4.0_Partial - Fatal编程技术网

.net 如何使用分部类?

.net 如何使用分部类?,.net,oop,class,c#-4.0,partial,.net,Oop,Class,C# 4.0,Partial,可能重复: 我对部分课程还不熟悉,想知道是否有人能给我一个大图,说明我为什么要使用它们,以及在这个过程中我会获得什么优势 我需要做的是,我正在将我的数据从一个windows窗体保存到多个表,比如5个表。 我想在其他地方重用代码 我已经创建了一个DAL类,现在如何实现这个部分类来保存数据 提前感谢您的支持……) 我创造了这样的东西:它好用吗 class clsDAL { public partial class SaveData {

可能重复:

我对部分课程还不熟悉,想知道是否有人能给我一个大图,说明我为什么要使用它们,以及在这个过程中我会获得什么优势

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

“partial”关键字所做的只是将类代码分散在多个文件中。 这对组织工作很有帮助。否则,它就像一门课


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

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

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

public partial class SaveData
{
    public void SpClient()
    {

    }
}

public partial class SaveData
{
    public void SpCountry()
    {

    }
}
在同一个文件中。但这几乎毫无意义。将其分离为多个文件会更好

为什么:

它有时可以帮助您将单个类中的代码分类为单独的块,即使它们基本上都是同一个类的一部分。在
SpClient.cs
文件中具有
SpClient
功能将帮助您更好地了解该文件中的代码将起到什么作用(同样,在
SpCountry.cs
中也有
SpCountry

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

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
关键字。编译器假定此类型的所有其他分部类都是静态的。换句话说,你可以做到:

static partial class Extensions //in StringExtension.cs
{

}

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


在您的情况下,我看不到将关注点划分为不同的分部类的特殊原因。最好在一节课上写。您必须编写代码使事情正常运行。

您能给我举个例子,我如何使用它来防止在mysql中将数据保存到多个表中?我也很困惑,你在问两个问题:为什么要使用分部类,你的
DAL
设计好吗。这应该是两个独立的问题。对于第二个问题,几乎没有任何信息可以回答。从表面上看,在单独的部分类中使用单个函数看起来是一个糟糕的设计。
static partial class Extensions //in StringExtension.cs
{

}

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