gpt4 book ai didi

C# 复制构造函数

转载 作者:太空狗 更新时间:2023-10-30 00:10:54 27 4
gpt4 key购买 nike

我很抱歉问了一些对于 C# 人员来说可能太基础的问题。我主要使用 C++ 编写代码。

所以如果我想为我的类编写一个赋值构造函数,我该怎么做呢?到目前为止我有这个,但它似乎没有编译:

public class MyClass
{
public string s1;
public string s2;
public int v1;

public MyClass()
{
s1 = "";
s2 = "";
v1 = 0;
}

public MyClass(MyClass s)
{
this = s; //Error on this line
}
}


MyClass a = new MyClass();
MyClass b = new MyClass(a);

最佳答案

您不能分配类本身 - 这种形式的构造函数通常会复制其他类的成员:

public MyClass(MyClass s)
{
this.s1 = s.s1;
this.s2 = s.s2;
this.v1 = s.v1;
}

这为您提供了另一个类中项目的“副本”。如果你想共享引用,你不能这样做,但你不需要构造函数 - 分配变量可以很好地实现:

var orig = new MyClass();
var referencedCopy = orig; // Just assign the reference

关于C# 复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18134144/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com