可能会重复问题,因为它很简单,但我找不到问题的答案。我对 C# 和一般编码很陌生,但对对象和类仍然有点困惑。
我想从
defaultChar
类访问 Character
对象中的数据,但由于范围的原因,数据无法访问。我知道我可以移动 defaultChar
但我不想在我的 Program
类中包含大量字符数据(我想要更多字段,然后只是“别名”和更多字符),如何在不放置的情况下访问它它在Program
?
public class Program
{
public static void Main()
{
Character character = new();
Console.WriteLine (character.defaultChar.alias);
// Error 'Character.defaultChar' is inaccessible due to its protection level
}
}
public class Character
{
public string alias {get; set;}
Character defaultChar = new()
{
alias = "No Encontrado",
};
}
我尝试将
defaultChar
公开,但这显然不起作用,我尝试使用带有数据的方法,但无论如何我最终都会返回大量数据。我真的不知道该怎么办。
预先感谢您花时间阅读本文。
我尝试将 defaultChar 公开,但这显然不起作用
是的,确实如此。 但随后你会遇到不同的问题。 具体来说,无限递归。 这是因为当您创建
Character
的实例时:
Character character = new();
这涉及...创建
Character
的实例:
Character defaultChar = new()
{
alias = "No Encontrado",
};
然后还会创建
Character
的实例,然后又创建 Character
的实例,等等
每个实例不需要每个实例都有相同的
defaultChar
。 相反,您可能只想要一个“全局”defaultChar
。 为此,您可以将其设置为 static
,以便它与类本身相关联,而不是与任何给定的实例相关联。
例如:
public class Program
{
public static void Main()
{
Console.WriteLine(Character.defaultChar.alias);
}
}
public class Character
{
public string alias {get; set;}
public static Character defaultChar = new()
{
alias = "No Encontrado",
};
}