Нет способа разыграть его в зависимости от того, что у вас есть.FileAcccess
реализует IAccess<File>
, но аргумент типа accessBehavior
неизвестен.Нет никакой связи между T
, который может быть любого типа, и File
.
Если у вас было что-то вроде:
private IAccess<File> accessBehavior;
Тогда вы можете просто назначить его.В противном случае вам потребуется базовый интерфейс, не являющийся универсальным, например:
public interface IAccess {
}
public interface IAccess<T> : IAccess {
}
public abstract class Access<T>
{
private IAccess accessBehavior;
public Access()
{
FileAccess fa = new FileAccess();
accessBehavior = fa;
}
}
Но вы потеряете строгую типизацию параметра универсального типа для членов IAccess
.