Универсальные шаблоны C#. Ограничьте параметр универсального метода наличием определенного статического метода.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Универсальные шаблоны C#. Ограничьте параметр универсального метода наличием определенного статического метода.

Сообщение Anonymous »

Я работаю с автоматически создаваемыми классами кода, где каждый класс Foo имеет эквивалентный класс FooSerializer со статическим методом Serialize(Foo data).
Я хотел написать вспомогательную функцию, которая могла бы выполнять метод Serialize (+ кучу других вещей) для любого такого класса, получая два параметра типа.

Код: Выделить всё

public void Serialize(Foo data)
{
FooSerializer.Serialize(data);
}
Но это не может работать, поскольку он не знает, что FooSerializer имеет метод Serialize, а FooSerializer не является производным от какого-либо универсального интерфейса. который определяет этот метод как основанный на Foo.
Есть ли способ указать в общих ограничениях, что FooSerializer должен иметь метод Serialize, который получает параметр типа Foo?
В C++ я реализовал это, просто указав Foo и FooSerializer в качестве аргументов шаблона. Интересно, есть ли подобное решение в C#.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -static-me
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»