如何让其他 类 可以访问此变量?
How can I make this var be accessible by other classes?
所以我正在制作一个基于 SadConsole 库的简单游戏,并且有这个变量,当一个函数被另一个 class 调用时,我想重置它的位置。但我无法访问它。有什么办法可以解决吗?
using System;
using System.Collections.Generic;
using System.Text;
using SadConsole.Components;
using SadConsole;
using SadConsole.Themes;
using SadConsole.Controls;
using Console = SadConsole.Console;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace SAD
{
class MainConsole: Console
{
public MainConsole() : base(80,25)
{
Random random = new Random();
var console = new Console(80, 25);
var Control = new ControlsConsole(80,25);
Children.Add(Control);
console.IsVisible = true;
var button = new SadConsole.Controls.Button(10, 5) // THIS VAR. I WANT ITS POSITION TO BE RESET BUT I CAN ACCESS IT
{
Text = "Press",
Position = new Point(5, 5),
Theme = new ButtonLinesTheme()
};
button.Click += (s, a) => button.Position = new Point(random.Next(1, 81), random.Next(1,26));
Control.Add(button);
}
}
}
与其在构造函数中声明变量,不如将其设为 public
——这将使它在程序集外也可用——或 internal
——这将使它可用对于同一程序集中的所有 classes -- 属性.
using foo;
...
namespace SAD {
class MainConsole: Console
{
public SadConsole.Controls.Button TheButton {get; private set;}
public MainConsole() : base(80,25) {
...
TheButton = new SadConsole.Controls.Button(10,5) {...}
}
}
}
private
setter 确保 TheButton
只能在 MainConsole
class 中设置,但 getter 是public
一旦设置了 属性,您就可以从代码中的任何其他地方访问 TheButton
,您可以在其中获得 MainConsole
class 的实例。
所以我正在制作一个基于 SadConsole 库的简单游戏,并且有这个变量,当一个函数被另一个 class 调用时,我想重置它的位置。但我无法访问它。有什么办法可以解决吗?
using System;
using System.Collections.Generic;
using System.Text;
using SadConsole.Components;
using SadConsole;
using SadConsole.Themes;
using SadConsole.Controls;
using Console = SadConsole.Console;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace SAD
{
class MainConsole: Console
{
public MainConsole() : base(80,25)
{
Random random = new Random();
var console = new Console(80, 25);
var Control = new ControlsConsole(80,25);
Children.Add(Control);
console.IsVisible = true;
var button = new SadConsole.Controls.Button(10, 5) // THIS VAR. I WANT ITS POSITION TO BE RESET BUT I CAN ACCESS IT
{
Text = "Press",
Position = new Point(5, 5),
Theme = new ButtonLinesTheme()
};
button.Click += (s, a) => button.Position = new Point(random.Next(1, 81), random.Next(1,26));
Control.Add(button);
}
}
}
与其在构造函数中声明变量,不如将其设为 public
——这将使它在程序集外也可用——或 internal
——这将使它可用对于同一程序集中的所有 classes -- 属性.
using foo;
...
namespace SAD {
class MainConsole: Console
{
public SadConsole.Controls.Button TheButton {get; private set;}
public MainConsole() : base(80,25) {
...
TheButton = new SadConsole.Controls.Button(10,5) {...}
}
}
}
private
setter 确保 TheButton
只能在 MainConsole
class 中设置,但 getter 是public
一旦设置了 属性,您就可以从代码中的任何其他地方访问 TheButton
,您可以在其中获得 MainConsole
class 的实例。