我正在尝试从const { block } = require('./block.js')
block('Your exiting message!')
// your other js code after here
// ...
子类的值中获取ClicksCounter
到另一个子类,并且我不知道如何传递该值。从我获得的结果来看,FableScript
被父类(ClicksCounter
)成功读取,但是在GameManagerRevamped
子类上,似乎值没有在那里传输。
假设这是我的家长班
BattleSystem
我的孩子班,public class GameManagerRevamped : MonoBehaviour
{
public int ClicksCounter;
public virtual void firstButtonClicked()
{
Debug.Log(ClicksCounter);
}
}
FableScript
我的第三个子类public class FableScript : GameManagerRevamped
{
public override void firstButtonClicked()
{
ClicksCounter += 1;
base.firstButtonClicked();
}
}
是我试图获取BattleSystem
的值的地方
ClicksCounter
我的目标是当用户单击按钮(public class BattleSystem : GameManagerRevamped
{
public void BattleButton()
{
//Output is 0 here
Debug.Log("Battle Counter is" + ClicksCounter);
}
}
)时,它将递增并被FableScript
读取。
答案 0 :(得分:0)
一种选择是使点击计数器在基类中变为静态。如果可以,可以在所有子类之间共享该属性。
class Program
{
static void Main(string[] args)
{
var childClass1 = new ChildClass1();
var childClass2 = new ChildClass2();
childClass1.IncrementCounter();
childClass2.ConsoleLogCounter();
}
}
public class BaseClass
{
public static int counter;
}
public class ChildClass1 : BaseClass
{
public void IncrementCounter()
{
counter++;
}
}
public class ChildClass2 : BaseClass
{
public void ConsoleLogCounter()
{
Console.WriteLine(counter);
}
}