如何在C#中发送只读数据?

时间:2012-02-17 19:58:22

标签: c# c#-4.0

我必须将Form1对象的副本发送到我的方法,我不希望其他用户可以更改我的实际数据。我该怎么办?

这一定是那样的......

public partial class Form1 : Form
{
    public Form1 getGameData()
    {
        Form1 form1 = new Form1();
        form1 = this;

        return form1;
    }
}

我将在下面使用它......

someObject.someMethod(getGameData());

2 个答案:

答案 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