我正在尝试将结构从一个对象传递给另一个对象.我有以下代码:
private void mainMenuStripNewProject_Click(object sender, EventArgs e)
{
frmNewProject frmNewProject = new frmNewProject(this);
if (frmNewProject.ShowDialog() == DialogResult.OK)
{
StructProjectSettings tempProjectSettings = frmNewProject.getSettings();
newProjectEvent(tempProjectSettings); //Fetchs settings from the new project form
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
错误14无法将类型'NathanUpload.frmNewProject.StructProjectSettings'隐式转换为'NathanUpload.Main.StructProjectSettings'o:\ daten\visual studio 2010\Projects\NathanUpload\NathanUpload\Main.cs 43
每个类中的结构都声明为公共类变量,并且是相同的.
我在这里先向您的帮助表示感谢!
你有没有在每个类中定义实际的struct?
即使您对它们使用相同的名称,编译器也不会将它们视为相同的类型.
您必须在一个地方定义结构,并从需要使用它的两个类中创建它的对象.
一个例子
public class A{
public struct MyStruct{
...
}
}
public class B{
public struct MyStruct{
...
}
}
A.MyStruct struct1 = new B.MyStruct();
Run Code Online (Sandbox Code Playgroud)
这是不允许的,这实际上是你想要做的.我建议将结构移出类,并将它放在两个类都可以访问它的地方.
相反,定义它
public struct MyStruct{
...
}
public class A{
...
}
public class B{
...
}
MyStruct struct1 = new MyStruct();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2131 次 |
| 最近记录: |