Когда вы создаете экземпляр объекта, он всегда находится в определенной области видимости.
Так, например:
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
}