将结构数组作为输入参数

本文关键字:输入 参数 结构 数组 | 更新日期: 2023-09-27 18:28:23

我的类中有一个名为RangeName的结构,在一个方法中,我设置了一个数组,如下所示:

RangeName[] myNames = new RangeName[currWkb.Names.Count];

稍后我想将myNames传递到另一个方法中。我试过:

public void TestRoutine(RangeName[] myNames)

但我的代码不会生成。我得到

可访问性不一致:参数类型"MyTools.clsTest.RangeName[]"的可访问性低于方法"MyTools.clsTest.TestRoutine(MyTools.calsTest.RangeName])"

将结构数组作为输入参数

您需要使您的RangeName结构体public(至少)。默认情况下,结构和类为internal。当然,您也可以通过将方法设为internal来降低其可访问性。

当您得到一个不一致的可访问性错误时,这意味着具有较高可访问性的方法(在本例中为public)的参数类型为低可访问性。

您需要确保RangeName结构在其封闭上下文中具有公共可访问性。找到声明,并在struct前面添加public

RangeName结构的可访问性低于将RangeName[]作为参数的公共TestRoutine。如果有人试图调用TestRoutine,他们将永远无法传入参数,因为调用者很可能无法访问该结构。

您可以通过使TestRoutine对RangeName的可访问性更低或相等,或者将RangeName增加为public来解决此问题。