我想让我定义的类的对象全局,但我得到错误。 我正在做这样的事情:
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'
答案 0 :(得分:3)
您是否尝试过错误所说的内容?
将“public”添加到login_log类和客户类
答案 1 :(得分:3)
你可以制作你的&#34;全局&#34; class internal(并使用Properties,这通常更加惯用,因为它可以更加安全地证明您的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
也可以解决&#34;问题。然而,虽然我不建议制作静态&#34;全球&#34;一般来说,这种性质的数据,如果您要这样做,将其保持在集会内部可能比将其公之于众更好。
答案 2 :(得分:2)
该错误表示您的customer
和login_log
类型比使用它们的字段更不易访问(即,它们不是public
)。
字段的类型必须至少与字段本身一样可访问。制作customer
和login_log
public
可以解决此错误。
答案 3 :(得分:1)
检查login_log
和customer
类的声明。他们可能在他们面前丢失了public
个关键字(默认情况下将其设为内部关键字,因此不太容易访问)。