嗨,我在C#编程方面有点新,我有点卡住了。我试过搜索这个网站,但我没有成功找到我的问题的答案。我也试过将我的私人改为公众,但这不起作用。
以下是我收到的错误消息:
错误2可访问性不一致:参数类型“exam2.location”是 比方法更难接近 'exam2.Form1.MoveToANewLocation(exam2.location)'
以下是我的代码的一部分:
public Form1()
{
IntializeComponent();
CreateObject();
MoveToANewLocation(livingRoom);
}
private void MoveToANewLocation(location newLocation)
{
currentLocation = newLocation;
comboBox1.Items.Clear();
for (int i = 0; i < currentLocation.Exits.Length; i++)
{
comboBox1.Items.Add(currentLocation.Exits[i].Name);
comboBox1.SelectedIndex = 0;
}
textBox1.Text = currentLocation.Description;
if (currentLocation is IHasExteriorDoor)
{
GoThroughTheDoor.Visible = true;
}
else
{
GoThroughTheDoor.Visible = false;
}
}
abstract class location
{
public location(string name)
{
this.name = name;
}
public location[] Exits;
private string name;
public string Name
{
get { return name; }
}
public virtual string Description
{
get {
string description = "You're standing in the" + name +
". You see exits to the following places: ";
for (int i = 0; i < Exits.Length; i++)
{
description += " " + Exits[i].Name;
if (i != Exits.Length - 1)
description += ",";
}
description += ",";
return description;
}
}
}
答案 0 :(得分:0)
如果位置类已公开,则将其设为公开
答案 1 :(得分:0)
您需要以这种方式声明您的课程:
public abstract class location
{
...
}
顺便说一句,通用代码样式的类以大写字母开头(即Location
)。
C#默认为internal
的可访问性,因此在类中使用公共方法将导致此错误(如构造函数,属性和虚方法)。一个好的经验法则是始终将类声明为public,除非您确定您希望其中的所有内容都是内部的或更低的。
有关访问修饰符的详细信息,请参阅MSDN。