我在一个C#类中有一个结构数组,我想将该数据传递给另一个类。
这是我的代码
private struct strClassOfService
{
public string COS;
public string myValue;
}
private strClassOfService[] arrCOS = null;
//
// some code that loads arrCOS with data
//
//
// here is where i will instantiate another class and
// set the arrCOS so I can use it in the other class
//
如果所有其他方法都失败了,我想我可以重新加载其他类中的数据。但我很好奇是否有办法。到目前为止,我的尝试失败了。
答案 0 :(得分:5)
嗯,首先,如果你打算将结构传递给另一个类,你应该将结构定义公开(或至少是内部的)......一旦你这样做,就可以使用各种方法(属性,方法调用等)将数据复制到您的其他类。
下面显示了两种技术(当然,您只需要使用一种......)
public class Foo1
{
public struct Bar
{
string A;
string B;
}
private Bar[] data;
// Using a method
public Bar[] ExportData()
{
return data;
}
// Using properties
public Bar[] DataProperty
{
get { return data; }
}
}
public class Foo2
{
private Foo1.Bar[] data;
// Using a method
public void ImportData(Foo1 source)
{
this.data = source.ExportData();
}
// Using properties
public Foo1.Bar[] DataProperty
{
get { return data; }
}
public void ReadProperty(Foo1 source)
{
this.DataProperty = source.DataProperty;
}
}
答案 1 :(得分:0)
如果你不想制作你的结构public
,你可以考虑将其声明为internal
:这样它只能被同一个程序集中的其他类访问。