gpt4 book ai didi

c# - 另一个类中的变量没有改变

转载 作者:行者123 更新时间:2023-11-30 19:56:01 25 4
gpt4 key购买 nike

我有两个文件,class1.csprologue.cs。在序言中有一个公共(public) bool “Panic”。

序言.cs

public partial class Prologue : Script{

public bool Panic;

public void PrologueMission(){ //Called when the script starts
Panic = true;
}

在 class1.cs 中我有

void Update10(){ //Runs this function every 10 seconds
Prologue prologue = new Prologue(); //prologue.cs
if (prologue.Panic) {
//code...
}
}

问题是,bool Panic 在 Class1.cs 中仍然是假的,所以我创建了一个日志方法来找出发生了什么。 panic 在 Prologue.cs 中变为真,但在 Class1.cs 中仍然为假。

我尝试过其他方法,例如静态变量和返回 true/false 的方法,但似乎都不起作用,所以我被困在这里。

简而言之: 为什么 bool Panic 在 Prologue.cs 中设置为 true,但在 Class1.cs 中始终为 false。

我希望您也能解释这不起作用的原因,但不胜感激!

编辑:日志:

Prologue: .Panic:True //Set to true in Prologue.cs
prologue.Panic: False //False in class1.cs
prologue.Panic: False //False in class1.cs
prologue.Panic: False //False in class1.cs
Prologue: .Panic:True //Set to true in Prologue.cs again
prologue.Panic: False //False in class1.cs
prologue.Panic: False //False in class1.cs
prologue.Panic: False //False in class1.cs

最佳答案

Panic 只能通过调用 PrologueMission 设置为 true。

你没有调用它。

 void Update10(){ //Runs this function every 10 seconds
Prologue prologue = new Prologue(); //prologue.cs

prologue.PrologueMission(); // <<<<

if (prologue.Panic) {
//code...
}
}

如果你想在一开始就设置它,你必须在 Prologue 的构造函数中这样做

public partial class Prologue : Script{

public bool Panic;

public Prologue()
{
Panic = true;
}

//...
}

它的作用与:

public partial class Prologue : Script{

public bool Panic = true;

// ...
}

根据评论:您必须将 Prologe 实例存储在更新方法之外:

public class Class1
{
Prologue myPrologue = new Prologue();
//...
void AnotherMethod()
{
myPrologue.PrologueMission();
}
//...
void Update10()
{
if (myPrologue.Panic)
{
//code...
}
}
}

关于c# - 另一个类中的变量没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35154748/

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