c#输出结构参数
本文关键字:参数 结构 输出 | 更新日期: 2023-09-27 18:10:36
我在c#中有这个代码,但是我有一个问题:
struct myStruct
{
public string sOne;
public string sTwo;
}
public static int ChangeStruct(out myStruct[] arrmyStruct)
{
arrmyStruct= new myStruct[256];
arrSNChildrenStruct[0].sOne= "";
arrSNChildrenStruct[0].sTwo= "";
return 0;
}
但是当我构建时,我有这个错误:可访问性不一致:参数类型'out ........比方法.....
更难访问怎么了?由于
用public struct myStruct
代替内部结构体。或者让ChangeStruct() private
,如果你只在本地使用它。
这与它是out
参数或数组无关。你会得到同样的错误:
public static void ChangeStruct(myStruct foo)
您的方法是公共的,但是您的结构是internal
(任何顶级类型的默认可访问性)或private
(如果它是嵌套类型)。这意味着程序集外部的任何调用者都应该有权访问该方法。但不可能理解方法签名。c#不允许你声明的方法引用的类型不能被所有可能的调用者看到。
选项:
- 设置方法为
internal
或private
其他笔记:
- 你的名字很不传统。根据其含义命名类型,并将其命名为pascalcase。从你的变量名中去掉"arr"前缀。 公共字段通常是一个坏主意,就像可变结构一样。