如何使用常见的CS文件在表单之间传递变量

时间:2018-12-09 19:49:59

标签: c#

我目前正在Visual Studio中学习c#窗口表单的基础知识,并且想知道如何使用常见的CS文件。我想将变量从一个文件传输到另一个文件,我相信一个简单的方法是使用一个普通的cs文件,该文件仅存储变量,然后从每个表单中引用它。所以我的问题是。如何为该通用CS文件布置代码?如果我以一种形式引用该值,然后以下一种形式引用它,则它将显示以前形式中记录的值或从0重新开始。谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

几件事。我将从这篇文章中删除基本标签,因为这是一门完全不同的语言,可能会引起一些奇怪的答复。

您的问题似乎使CS文件与对象和引用混淆了。因此,首先,.cs文件没有什么神奇的。它只是c#代码所在的文件。通常每个文件都有一个1类的约定,但这只是对开发人员的帮助,而不是要求。您的数据本身将在一个对象实例中,并且该对象实例由一个类定义(恰好在一个cs文件中)。

一个简单的类定义可能看起来像这样

public class Person
{
    public int Id
    {
        get;
        set;
    }

    public string Name
    {
        get;
        set;
    }
}

然后您的第一个表单可以创建一个这样的人的实例:

    Person bob = new Person();
    bob.Id = 1;
    bob.Name = "Bob Dylan";

(或者您可能会从控件中分配值)

然后,您需要将您的人员对象实例传递给其他表单。有几种方法可以完成,并且在不了解您的问题域的情况下,我无法判断哪种方法最合适。但是,如果您的第二个表单具有Public Person属性,那么您可以做些简单的事情

Form2 secondForm = new Form2();
secondForm.Person = bob;
secondForm.Show();

或通过构造函数传递(如果是这样定义的话)

Form2 secondform = new Form2(bob);
secondForm.Show();

现在,您的secondForm实例可以通过Person属性或在构造函数中(取决于编写方式)访问上面创建的bob对象。

尽管这也可以使用静态类甚至单例来完成,但我认为,除非您对常规类完全了解,否则使用它们可能会导致您陷入各种“代码异味”。