问题描述
- C# 变量赋值与改变问题
-
如上面的图片所示
将一个全局变量players[n]赋值给局部变量player
然后对局部变量play进行设置 赋值
然后发现全局变量players[n]也跟着改变了
这是为什么?
解决方案
引用类型变量的赋值: 引用类型变量中保存的是“指向实际数据的引用指针”。在进行赋值操作的时候,它和值类型一样,也是先有一个复制的操作,不过它复制的不是实际的数据,而是引用(真实数据的内存地址)。
所以引用类型的变量在赋值的时候,赋给另一变量的实际上是内存地址。这样赋值完成后,2个引用变量中保存的是同一引用,他们的指向完全一样。
解决方案二:
c# winform 关于给静态全局变量赋值的问题
char型变量赋值问题
解决方案三:
public BOOLEAN SecondLevel(int noPlayer, bool bID)
{
Player player = players[noPlayer];
if (bID)
{
Random rand = new Random();
if (CheckID(player).Count == 0)
return BOOLEAN.FALSE;
switch (CheckID(player).Count)
{
case 1:
player.IDSet(CheckID(player)[0]); break;
default:
{
int team = rand.Next(noPlayer);
player.IDSet(GasesAndChooseType(players[team], CheckID(player)));
} break;
}
player.Hand.Remove(player.Identity_Card.Key);
return BOOLEAN.FULL;
}
else
{
return LifeSkillSetAI(player);
}
}
解决方案四:
你传递操作是一个类对象 吧?这涉及到值传递和引用传递的问题;
时间: 2024-10-30 11:02:29