Есть ли в любом случае дублировать intellisense, предоставляемый структурой Color в visual studio? - PullRequest
0 голосов
/ 25 мая 2010

То, что я хочу сделать, это предоставить некоторые открытые статические поля, которые будут использоваться в качестве экземпляров реализации интерфейса, и иметь intellisense, подбирать их, когда интерфейс является аргументом метода.

Идея состоит в том, чтобы он выглядел как перечисление для разработчика. Я ссылаюсь на Color, потому что в основном это поведение, которое я хочу, я просто не знаю, как его воспроизвести.

Редактировать

Я не знаю, что происходит. Кажется, сейчас работает. Спасибо за быструю помощь по глупому вопросу.

Ответы [ 2 ]

3 голосов
/ 25 мая 2010

Структура Color просто имеет набор статических свойств , которые возвращают ожидаемые объекты. Пример:

public struct Color 
{
    public Color(int r, int g, int b) 
    { /* Init */ }

    public static Color Black
    {
        get { return new Color( 0, 0, 0 ); }
    }
}

Чтобы уточнить мой ответ. Вам просто нужно будет повторить этот шаблон в вашем собственном коде, чтобы добиться того же эффекта. Я бы порекомендовал взглянуть на кодовый генератор T4 , встроенный в Visual Studio, если у вас есть много значений, которые необходимо создать, и которые уже существуют в другом месте. Только не добавляйте слишком много. Это может запутать разработчика и замедлить работу IDE.

2 голосов
/ 25 мая 2010

Вы, похоже, ответили на свой вопрос, задав его - используйте открытые статические поля:

public class MyClass
{
    public const string Value1 = "something one";
    public static readonly  MyType Value2 = new MyType();
    public const int Value3 = 3;
}

public class MyOtherClass
{
    public MyOtherClass()
    {
        string str = MyClass.Value1;
        // str == "something one"
    }
}
...