我有一个主表单,当用户单击按钮时,它会弹出一个气球提示。气球提示是从BalloonTip类在Main表单类中实例化的对象。然后我有第二个设置表单。当用户单击设置表单中的某些内容时,也会出现气球提示。我目前在Main类和SettingsForm类中实例化了一个balloontip对象。我的两个问题是:
- 有没有更合适的方法来处理这种情况?
- 如果在每个类中创建一个对象两次1,如果对象具有相同的名称(即objectBalloon),它会在编译器中引起任何类型的歧义吗?
当你实例化一个对象时,它总是在一个特定的范围内。
例如:
public void DoSomething()
{
BalloonTip b = new BalloonTip();
DoSomethingElse();
}
public void DoSomethingElse()
{
BalloonTip b = new BalloonTip();
}
将为您提供两个不同的BalloonTip实例,它们都称为'b',但它们都只在声明它们的函数范围内有效。
你应该看到一个类定义作为一个蓝图,从它可以实例化多个对象。在一个作用域中可以有多个实例,但它们应该有不同的名称。
当作用域不重叠时,可以使用相同的名称指向不同的实例。
你也可以把一个实例传递给另一个方法,在那个函数中你可以用另一个名字来引用这个实例。
public void DoSomething()
{
BalloonTip b = new BalloonTip();
DoSomethingElse(b);
}
public void DoSomethingElse(BalloonTip c)
{
// c points to the same instance as b in the previous function
}