Есть ли эквивалент в typedef в c #? - PullRequest
10 голосов
/ 18 мая 2011

то есть что-то вроде

typedef Dictionary<string, string> mydict;

Клянусь, я видел это, но не могу найти

Ответы [ 5 ]

19 голосов
/ 18 мая 2011

using MyDict = Dictionary<String, String>, что похоже на определение символа, который будет заменен компилятором.

5 голосов
/ 18 мая 2011

Вроде.

using IntList = System.Collections.Generic.List<int>;

http://arbel.net/2004/07/07/the-hidden-c-typedef/

Одна проблема в том, что нет способа # включить определение.

2 голосов
/ 15 марта 2013

использовать наследование:

открытый класс DoubleNameValueCollection: Dictionary {}

Затем используйте, как если бы это было typedef:

NameValueCollection values = new NameValueCollection();
values.Add( "value1", "value2" );
DoubleNameValueCollection dblNameCol = new DoubleNameValueCollection();
dblNameCol.Add( "key1", values );

Или, если вы хотите запутать других:

DoubleNameValueCollection dblNameCol = new DoubleNameValueCollection
    {
        { "key1", new NameValueCollection 
            {
                { "value1", "value2" }
    }}};   
0 голосов
/ 18 мая 2011

Существует делегат, который используется для определения типа аргумента метода,

существует using BlaBla = Full.Name.Space.Yada.Yada;

, однако оператор using действителен только в текущем файле.

0 голосов
/ 18 мая 2011

В C # нет эквивалента typedef, однако вы можете использовать 'using' для псевдонимов.

...