如何让其他 类 可以访问此变量?

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 的实例。