Все, что вам нужно изменить в своем коде, - это добавить геттер к свойству Value
в интерфейсе IFoo
.
Семантически говоря, IFoo
- это особый вид IReadOnlyFoo
, который добавляет еще одну возможность к своему базовому типу (установщик свойства Value
).
Это точное определение наследования в объектно-ориентированном программировании - дочерний тип является более конкретной версией своего базового типа и добавляет к нему возможности.
interface IReadOnlyFoo
{
string Value { get; }
}
interface IFoo : IReadOnlyFoo
{
new string Value { get; set; }
}
class BasicFoo : IFoo
{
public string Value { get; set; }
}
Этот код является абсолютно действительным и даст вам именно то, что вы ищете.
Таким образом, если у вас есть ссылка типа IReadOnlyFoo
на экземпляр BasicFoo
, свойство Value
действительно доступно только для чтения, но если ваш ссылочный тип - IFoo
, это свойство чтения / записи. [ 1115]
Попытайтесь разработать option
элементы самостоятельно:
<option style="…">Label</option>
Но я сомневаюсь, что браузеры поддерживают много моделирования этих элементов.
Править
Я пытаюсь иметь несколько цветов шрифта на той же строке ОПЦИИ.
Это не возможно как option
элемент действительно только позволяет текст как содержание:
<!ELEMENT OPTION - O (#PCDATA) -- selectable choice -->
Вы, вероятно, не можете сделать этого с простым ванильным списком выборки. Однако, вероятно, было бы возможно использовать JavaScript + HTML + CSS для создания собственного "списка выборки", использующего просто отделение и элементы промежутка и что корректный onclick и onmouseover JavaScript. Было бы намного более трудным, но если это действительно важно, Вы могли бы, вероятно, заставить это работать.
Почему бы вам не поместить фоновое изображение в каждую строку, например:
<option style="background-image: multicolorimage.jpg>some text</option>
извините, неправильный ответ. Сначала я не понял, что вы пытаетесь сделать, поэтому пропустите мой пост :)