如何从类的多变量实例中获取变量?

时间:2016-09-01 19:08:34

标签: c# class

我有一个像这样的简单类:

public class r_event
{
    string name;
    double time;

    public r_event()
    {
        name = "none";
        time = 0;
    }

    public r_event(string name, double time)
    {
        this.name = name;
        this.time = time;
    }
}

我已经在另一个类中创建了一个实例,如下所示:

    r_event event1 = new r_event("SH_S", 2);  

但我想只将这两个变量中的一个(事件,时间)分配给我的第二个类的局部变量;

实际上我想在第二个类中声明(例如)一个名为“name”的字符串,并将r_event类实例的“name”属性指定给name。 像这样的事情:

     string name = event1.name;

但是不可能。我该怎么做这个工作?

3 个答案:

答案 0 :(得分:1)

只是运行你的代码,请不要指出未指定其可访问性的变量private by default如果您将变量访问权限声明为public我只是测试了它,请阅读C# MSDN Access Modifiers < / p>

public class r_event
{
    public string name;
    public double time;

    public r_event()
    {
        name = "none";
        time = 0;
    }

    public r_event(string name, double time)
    {
        this.name = name;
        this.time = time;
    }
}

以同样的方式调用

r_event event1 = new r_event("SH_S", 2);  

如果您熟悉Auto-Property's,可以这样做

public class r_event
{
    public string name { get; set; }
    public double time { get; set; }

    public r_event()
    {
        name = "none";
        time = 0;
    }

    public r_event(string name, double time)
    {
        this.name = name;
        this.time = time;
    }
}

答案 1 :(得分:0)

尝试public string name;,您的保护级别无法访问您的变量。

答案 2 :(得分:0)

只需添加关键字 public ,即可将您已公开的字段设为公开。例如

public string name;
public double time;

这将允许您在课堂外访问它们。 事实上,创建(公共)属性比使用公共字段更好。您可以通过添加以下内容来实现此目的......

public string Name
{
    get { return name: }
    set { name = value; }
}

public double Time
{
    get { return time; }
    set { time = value; }
}

希望这会有所帮助(我建议您查看属性和辅助功能/访问修饰符)。