如何解决如何使其他类可以访问此var?
因此,我正在基于SadConsole库制作一个简单的游戏,并且存在一个var,当另一个类调用函数时,该位置我想重置该位置。但是我无法访问它。有什么解决办法吗?
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
-将使其对所有人都可用同一程序集中的所有类-属性。
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
设置器确保只能从TheButton
类中设置MainConsole
,但是getter为public
,因此一旦设置了属性,您就可以可以从代码中具有TheButton
类实例的任何其他位置访问MainConsole
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。