Я работаю в веб-службе C# с общим статическим классом, который принимает тип. Мне было интересно, почему это не компилируется:присваивать тип переменной, использовать переменную с общим статическим классом
Type type1 = typeof(MySnazzyType);
Assert.AreEqual(0, ConnectionPool_Accessor<type1>._pool.Count);
Это дает эту ошибку:
The type or namespace name 'type1' could not be found (are you missing a using directive or an assembly reference?)
И ReSharper, когда я наведите курсор мыши на type1
в этой второй строке кода, говорит «Тип или пространство имен Предположительное имя ». Хорошо, type1
is a type! Это переменная типа Type
! Он также не работает, если я делаю:
Type type1 = typeof(MySnazzyType);
Assert.AreEqual(0, ConnectionPool_Accessor<typeof(type1)>._pool.Count);
Я надеялся назначить свои типы в нескольких различных Type
переменных и использовать только те, в тестировании различных генерических статические классы, вместо того, чтобы печатать из MySnazzyType
каждый раз , Любые идеи, или я застрял с делать:
Assert.AreEqual(0, ConnectionPool_Accessor<MySnazzyType>._pool.Count);
Edit: уточнить, MySnazzyType
является не общий класс, и не наследуют от общего класса. Единственный общий класс здесь - ConnectionPool_Accessor
.
Благодаря замечанию Павла «По сути, ваша проблема в том, что C# является статически типизированным языком», теперь я знаю, что Ruby испортил мне. ;)
s/испортил меня/научил меня плохим манерам/;-) – Thorarin