C# - 将struct从一个对象传递到另一个对象

nf3*_*743 4 c# struct

我正在尝试将结构从一个对象传递给另一个对象.我有以下代码:

    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

每个类中的结构都声明为公共类变量,并且是相同的.

我在这里先向您的帮助表示感谢!

Øyv*_*hen 9

你有没有在每个类中定义实际的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)