Вы можете создать несколько функций / методов с одним и тем же именем, если сигнатура функции различна в каждой.
, например
public void building() {...}
public void building(int doors) {...}
public void building(bool multiStory) {...}
public void building(int doors, bool multiStory) {...}
для первого выше, что я хотел бы посмотреть на это:
public void building()
{
building(1); // call building passing default doors
}
public void building(int doors)
{
building(doors, true); // call the building function passing the default story flag
}
public void building(bool multiStory)
{
building (1, multiStory); // Call building function passing default doors and ms flag
}
public void building(int doors, bool multiStory)
{
//final building function - deal with doors & story arguments.
}
Обратите внимание, что вы можете делать такие вещи с Конструкторами объектов класса, используя ключевое слово "this", чтобы вызвать следующий конструктор примерно так:
void building() : this(1) {}
void building(int doors) : this(doors, true) {}
void building(bool multiStory) :this(1, multiStory) {}
void building(int doors, bool multiStory){
//do stuff
}