gpt4 book ai didi

c# - 在 C# 中按值传递

转载 作者:太空狗 更新时间:2023-10-29 17:38:11 26 4
gpt4 key购买 nike

如何通过按值参数将“MyClass”(C#) 的对象传递给方法?示例:

MyClass obj = new MyClass();
MyClass.DontModify(obj); //Only use it!
Console.Writeline(obj.SomeIntProperty);

...

public static void DontModify(MyClass a)
{
a.SomeIntProperty+= 100;// Do something more meaningful here
return;
}

最佳答案

默认情况下,对象类型在 C# 中按值传递。但是,当您将对象引用 传递给方法时,对象中的修改将被保留。如果您希望对象不可变,则需要克隆它。

为了做到这一点,实现 ICloneable类中的界面。这是一个如何使用 ICloneable 的模拟示例:

public class MyClass : ICloneable
{
private int myValue;

public MyClass(int val)
{
myValue = val;
}

public void object Clone()
{
return new MyClass(myValue);
}
}

关于c# - 在 C# 中按值传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11142177/

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