В соответствии со спецификацией метаданных Раздела II для таблицы GenericParamConstraint для CLR,
В таблице GenericParamConstraint записываются ограничения для каждого универсального параметра.Каждый общий параметр может быть ограничен для получения от нуля или одного класса.Каждый универсальный параметр может быть ограничен для реализации нуля или более интерфейсов.
Проблема в том, что я не могу найти правильный фрагмент кода C #, чтобы компилятор C # генерировал одну строку в GenericParamConstraintТаблица.Я попытался использовать
public interface IFoo
{
}
public interface IBaz
{
}
public interface IBar
{
}
public class Foo
{
}
public class SampleClassWithGenericParamConstraint<T>
where T : IFoo, IBaz, new()
{
public void DoSomething<U>(U arg1)
where U : struct
{
}
}
class Program
{
static void Main(string[] args)
{
}
}
.. но проблема в том, что компилятор C # генерирует только строки для таблицы GenericParam вместо добавления строк для таблицы GenericParamConstraint.Итак, вот мой вопрос - есть ли пример кода, написанный на C #, который заставил бы компилятор C # добавить строку метаданных в таблицу GenericParamConstraint, чтобы я мог использовать образец двоичного файла?И если это какое-то ограничение со стороны компилятора C #, есть ли эквивалентный фрагмент ILASM, который вместо этого будет выполнять эту работу?