如何从类的多变量实例中获取变量
本文关键字:变量 实例 获取 | 更新日期: 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;
,您的变量无法通过其保护级别访问