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 ........比方法.....

更难访问

怎么了?由于

c#输出结构参数

public struct myStruct代替内部结构体。或者让ChangeStruct() private,如果你只在本地使用它。

这与它是out参数或数组无关。你会得到同样的错误:

public static void ChangeStruct(myStruct foo)

您的方法是公共的,但是您的结构internal(任何顶级类型的默认可访问性)或private(如果它是嵌套类型)。这意味着程序集外部的任何调用者都应该有权访问该方法。但不可能理解方法签名。c#不允许你声明的方法引用的类型不能被所有可能的调用者看到。

选项:

  • 设置方法为internalprivate

其他笔记:

  • 你的名字很不传统。根据其含义命名类型,并将其命名为pascalcase。从你的变量名中去掉"arr"前缀。
  • 公共字段通常是一个坏主意,就像可变结构一样。