我必须将Form1对象的副本发送到我的方法,我不希望其他用户可以更改我的实际数据。我该怎么办?
这一定是那样的......
public partial class Form1 : Form
{
public Form1 getGameData()
{
Form1 form1 = new Form1();
form1 = this;
return form1;
}
}
我将在下面使用它......
someObject.someMethod(getGameData());
答案 0 :(得分:3)
您应该从表单中的数据创建一个类,并将该类传递给您的其他方法。
将表单中的每个字段映射到此新类,然后将其传递到您需要访问该数据的任何位置
答案 1 :(得分:1)
让Form1
实现一个定义对数据的只读访问权限的接口,然后在方法中定义该接口的参数类型。
oublic interface IMyInterface
{
int Property1 { get; }
int Property2 { get; }
}
public partial class Form1 : Form, IMyInterface
{
public Form1()
{
InitializeComponent();
}
int Property1 { get; set; }
int Property2 { get; set; }
}
public class SomeClass
{
public void SomeMethod(IMyInterface readOnlyForm)
{
}
}
然后,您只需将表单实例提供给SomeClass.SomeMethod