C#中复制构造函数是什么


本文摘自PHP中文网,作者青灯夜游,侵删。

通过从另一个对象复制变量或将一个对象的数据复制到另一个对象来创建对象的构造函数称为复制构造函数。下面我们来简单了解一下,希望对大家有所帮助。

复制构造函数是一个参数化构造函数,包含相同类类型的参数。它的主要用途是将新实例初始化为现有实例的值。通常,C#不提供对象的复制构造函数,但是如果要在程序中创建复制构造函数,可以根据需要进行创建。【教程推荐:C#视频教程】

基本语法

以下是使用c#编程语言定义复制构造函数的语法。

1

2

3

4

5

6

7

8

9

10

11

12

class Class_Name {

        // 参数化构造函数

        public Class_Name(string a, string b......)//参数列表

        {

            // code

        }

        // 复制构造函数

        public Class_Name(Class_Name instance_of_class)

        {

            // code

        }

}

示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

using System;

namespace Tutlane{

    class User {

        public string name, location;

        // 参数化构造函数

        public User(string a, string b){

            name = a;

            location = b;

        }

        // 复制构造函数

        public User(User user) {

            name = user.name;

            location = user.location;

        }

    }

    class Program{

        static void Main(string[] args){

            // 带有参数化构造函数的User对象

            User user = new User("小明", "北京");

            // 另一个User对象(user1)通过复制user的详细信息,

            User user1 = new User(user);

            user1.name = "小华";

            user1.location = "上海";

            Console.WriteLine(user.name + ", " + user.location);

            Console.WriteLine(user1.name + ", " + user1.location);

        }

    }

}

输出:

2.jpg

说明:

在上面的例子中,我们创建了一个复制构造函数(user1)的实例,并使用user对象的实例作为参数类型。因此,user对象的属性将发送到user1对象。当我们更改user1对象的属性值时,这些属性值不会影响User对象属性值。

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上就是C#中复制构造函数是什么的详细内容!

相关阅读 >>

详解C#多线程之线程同步(图文)

关于C#如何将word转换成pdf的方法汇总

详细介绍C#中out和ref的区别(图文)

.net是否真的被国内市场嫌弃?

C#开发实例-订制屏幕截图工具(三)托盘图标及菜单实现的图文介绍

C#使用反射来实现对象的深度复制的示例代码分享

C#开发实例-订制屏幕截图工具(一)功能概览(图)

C#如何将datatable中的列名复制到另一个datatable

C# 7.0 语言新特性

详解C#中array和arraylist的区别

更多相关阅读请进入《C#》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...