C# Параметр + Перегрузка
Я пытаюсь создать приложение с графическим интерфейсом, которое использует класс под названием Chameleon. Внутри класса есть три переменных экземпляра: длина, имя и цвет. Длина двойная, Имя и Цвет - строки.
Мне нужно перегрузить конструктор Chameleon. Можно создать новый объект Chameleon: 1. с длиной и именем, 2. с именем и цветом или 3. с указанием длины, имени и цвета. Конструктор должен поместить сообщение с информацией о хамелеоне, который был только что создан, в общедоступную переменную экземпляра.
Графический интерфейс должен позволять пользователю вводить длину (если она указана, допустимая длина составляет от 0,1 до 10,2 дюйма), имя (не должно быть пустым) и цвет (если указано, оно должно быть одним из: 'зеленый ',' оранжевый ',' коричневый ',' черный ',' желтый 'или' красный ').
Когда пользователь нажимает кнопку "ОК", объект Chameleon создается с использованием только тех аргументов, для которых пользователь указал значение. После этого общедоступная переменная экземпляра, содержащая сообщение, должна отображаться в метке в результате процедуры нажатия кнопки "ОК".
У меня очень мало опыта работы с приложениями с графическим интерфейсом, и я полностью потерян здесь. Любая помощь, чтобы хотя бы начать меня, была бы очень признательна. Как и для начинающих, как бы вы перегружали конструктор и позволяли ему создавать три разных объекта: 1. с длиной и именем, 2. с именем и цветом или 3. с указанной длиной, именем и цветом?
2 ответа
Добавьте ваши другие конструкторы с нужными вам параметрами, например так:
class Chameleon
{
private double length;
private string name;
private string color;
public Chameleon(string nameValue, double lengthValue, string colorValue)
{
name = nameValue;
length = lengthValue;
color = colorValue;
}
public Chameleon(string nameValue, double lengthValue)
{
name = nameValue;
length = lengthValue;
}
public Chameleon(string nameValue, string colorValue)
{
name = nameValue;
color = colorValue;
}
}
Затем из процедуры, которая создает этот экземпляр, напишите его так:
Chameleon chameleon = new Chameleon("SomeName", 1.0);
Chameleon anotherChameleon = new Chameleon("SomeOtherName", "blue");
Chameleon aThirdChameleon = new Chameleon("ChameleonName", 1.0, "blue");
Сначала вы должны создать конструктор по умолчанию. Конструктор по умолчанию будет использоваться, когда вы не передаете никаких параметров для создания экземпляра вашего объекта. Конструктор по умолчанию будет использовать ваши значения по умолчанию. Затем вы можете создавать свои перегруженные конструкторы. Перегруженный конструктор будет принимать любое количество различных параметров, которые будут переопределять значения по умолчанию.
class Chameleon
{
private double length;
private string name;
private string color;
//default constructor
public Chameleon()
{
length = 2;
name = "widget";
color = "blue";
}
//Overloaded Constructor
public Chameleon( double lengthValue, string nameValue, string colorValue)
{
length = lengthValue;
name = nameValue;
color = colorValue;
}