Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# clone

作者:颓废的爱情   发布日期:2026-01-14   浏览:37

using System;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    // 浅拷贝
    public Person ShallowCopy()
    {
        return (Person)this.MemberwiseClone();
    }

    // 深拷贝
    public Person DeepCopy()
    {
        Person other = (Person)this.MemberwiseClone();
        // 如果有引用类型成员,需要手动复制
        // 例如:other.SomeReferenceTypeProperty = new SomeType(this.SomeReferenceTypeProperty);
        return other;
    }
}

class Program
{
    static void Main()
    {
        Person original = new Person { Name = "Alice", Age = 30 };

        // 浅拷贝
        Person shallowCopied = original.ShallowCopy();
        Console.WriteLine($"Original: {original.Name}, {original.Age}");
        Console.WriteLine($"Shallow Copied: {shallowCopied.Name}, {shallowCopied.Age}");

        // 深拷贝
        Person deepCopied = original.DeepCopy();
        Console.WriteLine($"Deep Copied: {deepCopied.Name}, {deepCopied.Age}");
    }
}

解释说明

  1. 浅拷贝 (ShallowCopy):

    • 使用 MemberwiseClone() 方法创建对象的浅拷贝。
    • 浅拷贝只复制值类型的字段和引用类型的引用,不会递归地复制引用类型所指向的对象。
  2. 深拷贝 (DeepCopy):

    • 创建对象的深拷贝,不仅复制值类型的字段,还递归地复制引用类型所指向的对象。
    • 需要手动处理引用类型的成员,以确保它们也被正确复制。
  3. 示例代码:

    • 创建一个 Person 类,并实现浅拷贝和深拷贝方法。
    • Main 方法中,演示如何使用这两个方法进行对象的复制。

上一篇:c#界面开发

下一篇:c# split 多个字符

大家都在看

c# 二进制

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

c#网络编程

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站