我想制作我定义的类别全局的对象,但我会遇到错误。我在做这样的事情:
namespace HotelSystem
{
public static class GlobalVariables
{
public static login_log cashier = new login_log();
public static List<customer> customer = new List<customer>();
}
}
,我遇到此错误:
Inconsistent accessibility: field type 'HotelSystem.Helpers.login_log' is less accessible than field 'HotelSystem.GlobalVariables.cashier'
Inconsistent accessibility: field type 'System.Collections.Generic.List<HotelSystem.Helpers.customer>' is less accessible than field 'HotelSystem.GlobalVariables.customer'
您是否尝试过错误的说法?
将'public'添加到login_log类和客户类
您可以将您的" Globals"类内置(并使用属性,通常更惯用,因为它可以更安全地证明API):
internal static class GlobalVariables
{
private static readonly login_log cashier = new login_log();
private static readonly List<customer> customer = new List<customer>();
public static login_log Cashier { get { return cashier; } }
public static IList<customer> Customer { get { return customer; } }
}
这将导致可访问性与您的其他类别相同。
请注意,制作login_log
和customer
public
也会"解决"该问题。但是,尽管我不建议将这种性质的静态"全局"数据保留在整个大会内,而将其内部保存在大会内可能比公开它更好。
错误意味着您的customer
和login_log
类型比使用它们的字段易于访问(即,它们不是public
)。
字段的类型必须至少与字段本身一样容易访问。制作customer
和login_log
public
应该解决此错误。
检查login_log
和customer
类的声明。他们可能缺少 public
关键字(默认情况下使其内部,因此易于访问)。