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

本文关键字:变量 实例 获取 | 更新日期: 2023-09-27 18:05:08

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

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);  

但是我想把这两个变量(event,time)中的一个赋值给第二个类的局部变量;

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

     string name = event1.name;

但这是不可能的。我怎样才能胜任这份工作?

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

只是运行你的代码,请不要在可访问性方面没有指定变量是private by default这是有效的,我刚刚测试了它如果你声明变量访问为public请阅读c# MSDN访问修饰符

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;
    }
}

您可以通过简单地添加关键字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; }
}

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

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