如何在C#中制作一个全局对象



我想制作我定义的类别全局的对象,但我会遇到错误。我在做这样的事情:

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_logcustomer public也会"解决"该问题。但是,尽管我不建议将这种性质的静态"全局"数据保留在整个大会内,而将其内部保存在大会内可能比公开它更好。

<</p>

错误意味着您的customerlogin_log类型比使用它们的字段易于访问(即,它们不是public)。

字段的类型必须至少与字段本身一样容易访问。制作customerlogin_log public应该解决此错误。

检查login_logcustomer类的声明。他们可能缺少 public关键字(默认情况下使其内部,因此易于访问)。

相关内容

  • 没有找到相关文章

最新更新