c# - (C#)如何按值类型而不是引用类型复制类?
问题描述
采取以下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyClass
{
public int myNumber;
}
public class Test : MonoBehaviour
{
MyClass class1 = new MyClass();
MyClass class2 = new MyClass();
void Start()
{
class1.myNumber = 1;
class2 = class1;
class2.myNumber = 2;
Debug.Log(class1.myNumber); //output: 2 (I'd want it to output 1!!!)
}
}
现在,如果我理解正确,C# 中的类是引用类型而不是值类型,因此需要这种行为。
但是,我需要做什么才能不这样做?如果不将两个类“链接”在一起,我该怎么做才能进行正常的价值分配?
我意识到我可以用这个替换第 18 行:
class2.myNumber = class1.myNumber;
它会做我想做的事(因为我分配的是值类型而不是引用类型),但这对我的情况来说有点不方便......在我的真实脚本中,该类有几个我需要复制的子元素许多不同的地方。
是否有一种将类复制到新类的单行方法,而不是通过引用原始类而是通过创建一个新的独立类来链接它?
解决方案
推荐阅读
- jenkins - 使用 slackSend 的 Jenkins 管道评估步骤
- asp.net-mvc - 在文本生成 t4 文件中使用 Microsoft.AspNetCore dll
- c# - 来自 IQueryable 的随机数
- php - 从具有多个级别和子级别的数组创建 html 表
- r - 在 Microsoft Azure 语音服务中获取客户端密钥
- c# - 如何在对象类中对字符串值进行单元测试
- django - 为什么 .WMV 文件的 mime 类型为“video/x-ms-asf”而不是“video/x-ms-wmv”?
- c++ - 图像处理链
- ruby-on-rails - 替换用户名末尾的几个字符串
- python - 如何控制绘图在 X 轴上的滴答频率(熊猫、seaborn)