Если цвет - это ваше перечисление, то все, что вам нужно сделать в конструкторе, это сказать:
this.colour = c;
Однако меня немного смущает и беспокоит ваш комментарий о том, что "красный, зеленый и синий представлены значениями 0-255". большинство цветов будет иметь значение для каждого из красного, зеленого и синего, поэтому вам не нужно просто перечислять.
Перечисление легче всего представить по аналогии с выпадающим списком. Существует множество фиксированных значений, и ваш выбор должен быть одним из них, а не другим. За раскрывающимся списком может быть значение, но обычно вы хотите знать, говорит ли раскрывающийся список «Красный» или нет, а не то, какое значение за ним. Причина этого в том, что обычно в Enums вы просто говорите «If (color = Colour.Red) then ....».
То, что вы делаете, звучит больше похоже на .NET Class Color (названный американцами, возможно, поэтому вы его не нашли, если это то, что вы хотите). У него есть свойства для R, G, B, а также набор статических свойств, которые будут возвращать предопределенные экземпляры класса Color (например, Color.Red) и возвращать экземпляр Color с соответствующим набором RGB.
Так что я думаю, что вы, возможно, ошиблись в конце Enums, и, возможно, вам нужен класс Color.
Последнее, что вам может понадобиться, это иметь какой-нибудь класс Factory, который выполняет что-то вроде:
public Color CreateColor(Colour colEnum)
{
switch(colEnum)
case Colour.Red:
return Color.Red;
etc.
}
(извинения за путаницу в именах и использование цвета и цвета)
Это может гарантировать, что вы получите цвета, основанные на вашем перечислении, и только цвета, определенные в вашем перечислении, могут быть созданы таким образом.