gpt4 book ai didi

c# - 试图理解这个 : bool variables are value types in C#

转载 作者:行者123 更新时间:2023-11-30 14:27:12 24 4
gpt4 key购买 nike

在C#中,bool、long等基本数据类型都是值类型。这意味着如果您声明一个 bool 变量并将另一个 bool 变量的值赋给它,您将在内存中有两个单独的 bool 值。之后,如果您更改原始 bool 变量的值,则第二个 bool 变量的值不会更改。这些类型按值复制。 ( token 来自专业的 C# 5.0 Nagel、Christan、Glynn、Jay、Skinner、Morgan)

所以如果我们有一个类如下:

public class Tutorial()
{
public bool param1;
}

然后在主类中我们有以下内容:

Tutorial x, y;
x = new Tutorial();
x.param1 = false;
y=x;
Console.WriteLine(y.param1);
y.param1 = true;
Console.WriteLine (x.param1);

结果显示 false 然后是 true我的问题是它不应该打印 false false 吗?正如我在开头粘贴的文字中提到的那样?

最佳答案

my question is shouldnt it print false false?? as mentioned in the text i paste at the beganing?

不是,因为xy 都是引用类型,它们指向同一个对象。这是由于此分配 y=x; 而发生的。因此,使用 x 更改 param1 的值等同于使用 y 执行此操作。

"This means that if you declare a bool variable and assign it the value of another bool variable, you will have two separate bool values in memory"

bool x = true;
// We copy the value stored in x to the y
bool y = x;
// We change the x and the y doesn't change !
bool x = false;
// We verify the above with writing to the console
// the values of x and y
Console.WriteLine(x); // writes false to the console
Console.WriteLine(y); // writes true to the console.

关于c# - 试图理解这个 : bool variables are value types in C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33510362/

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