Как в C# обеспечить, чтобы все реализации интерфейса имели определенные ограничения?C#

Место общения программистов C#
Ответить
Anonymous
 Как в C# обеспечить, чтобы все реализации интерфейса имели определенные ограничения?

Сообщение Anonymous »

Я хочу сделать что-то подобное. Но я не могу использовать IMyInterface в качестве универсального типа для MyField, поскольку не обещано, что им будут управлять. Есть ли обходной путь?
public struct Main where T: unmanaged
{
MyField value;

public Main( Flag flag)
{
switch (flag)
{
case Flag.A:
value = new MyField();
break;
...
}
}
}

public struct MyField where T: unmanaged { }

public struct A : IMyInterface where T: unmanaged {...}
public struct B : IMyInterface where T: unmanaged {...}
public struct C : IMyInterface where T: unmanaged {...}
public struct D : IMyInterface where T: unmanaged {...}

public interface IMyInterface where T: unmanaged
{
//Some members.
}


Подробнее здесь: https://stackoverflow.com/questions/785 ... onstraints
Ответить

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

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

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

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

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