如何从另一个 class 访问 class 数组

How can I access a class array from another class

public partial class FormRestaurant : Form
     public Tables[] AllTables = new Tables[4];

我创建了一个 Tables 类型的数组,它是我创建的 class。如果我尝试通过执行以下操作从第三个 class (Parties.cs) 引用它:

public void AssignTable()
    {
        for (int i = 0; i < **FormRestaurant.AllTables**.Length; i++)
        {
            if (**FormRestaurant.AllTables[i]**.TableCapacity <= PartySize)
            {

            }
        }
    }

有人告诉我我需要一个对象引用。我该怎么做?

我试过将数组设为静态,但似乎不起作用。当我尝试制作 AllTables 数组 public.

时,我也会收到此错误

Error 1 Inconsistent accessibility: field type 'Restaurant_Spil.Tables[]' is less accessible than field 'Restaurant_Spil.FormRestaurant.AllTables'

您需要做的就是把您的 Tables class public。 您不能在 public class

中公开 private 字段类型

当它说您需要对象引用时,它试图告诉您它需要您的 class 的一个实例。假设您有 class:

public partial class FormRestaurant : Form
{
     public Tables[] AllTables = new Tables[4];
}

如果要获取Parties.cs中Tables[]数组的长度,那么Parties需要一个FormRestaurant的实例;要求 FormRestaurant.AllTables 的长度是没有意义的。相反,您应该:

public class Parties
{
    int length;
    FormRestaurant f;
    public Parties()
    {
        f = new FormRestaurant();
        length = f.AllTables.Length;
    }
}

f 变量是第一个错误中提到的 object reference