将结构数组作为输入参数
本文关键字:输入 参数 结构 数组 | 更新日期: 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来解决此问题。