Есть статический класс с дженериком
public static class Validations<T> where T: class
{
private static AnketaContext context = new AnketaContext();
public static bool CanUserStartTest(string TestableCode, Filials UserFilial, ref string accessName, ref string message)
{
//Тут проходит первоначальная проверка валидности и выкидывается результат в случае ошибки
//Этот результат выдаётся, если все предыдущие проверки прошли успешно
return CheckAccessForTestable(TestableCode, ref accessName, ref message);
}
private static bool CheckAccessForTestable(string code, ref string accessName, ref string errors)
{
//TODO
switch (typeof(T).Name)
{
case "Test360": //TODO
case "MotivationTest"://TODO
default://TODO
}
}
}
Пытаюсь протестировать метод этого класса
var result = Validations<Test360>.CanUserStartTest(TestableCode, filial, ref accessName, ref message);
Assert.AreEqual(ExpectedResult, result);
Assert.AreEqual(ExpectedErrMessage, message);
Assert.AreEqual(ExpectedAccessName, accessName);
Класс Validations<Test360>
подчёркивается красным и выводится ошибка
Неуниверсальный тип "Validations<Test360>" нельзя использовать с аргументами типа
Вроде всё делал по гайдам, и сам дженерик класс построил более менее верно. Но почему-то использовать его не получается.
Кажется, что ругается на Validations, а именно на то что этот класс не дженерик. Возможно стоит убедится в том что класс действительно дженерик(возможно дженериком является метод этого класса), или возможно дженерик реализация класса имеет модификатор доступа internal или еще какой то, который не доступен в той сборке, в которой тестируется.
Upd:
Судя по коду, Вы делаете все правильно. Но есть еще один момент который стоит проверить. Возможно в Вашем проекте или какой то библиотеке, от которой зависит Ваш проект, есть класс с таким же наименованием, который не является generic'ом. Что бы это проверить попробуйте указать полное имя класса Validations (т.е. с пространством имен). Возможно Вы не добавили using того пространства имен в котором определен Generic класс Validations. Так же в Visual Studio можно быстро перейти к определению типа, просто установите курсор на Validations<...> и нажмите F12, или в контекстном меню нажмите "Go To Definition", если эти действия привели Вас не к Вашему Generic классу Validation, значит просто нужно указать нужный тип.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Чтобы убрать трение при столкновении со стенами я добавлял колайдеру персонажа физический материал и в нём убирал Friction на 0, но из-за отсутсвия...
Хочу сделать программу для эмуляции работы пользователей, например на сайт, выполняет поиск через заполнение значение инпута и нажатие какой...
В решении XamarinForms стоит следующая задача: необходимо реализовать систему, которая будет следить за подключением/отключением USB-устройств
Я экспортировал все внутриновсти спомощью dotPeek, получил папки и файлыМне нужно было немного подкоректировать код(добавить пару ссылок), я сделал...