Есть базовый класс и у него есть наследник. И есть дженерик ограниченный базовым классом. Также есть интерфейсы реализуемые двумя разными классами. Во время реализации второго интерфейса в строчке:
return BuilderResource.GetPath( LoadedResources );
Происходит ошибка:
Compilation error (line 47, col 35): Argument 1: cannot convert from 'ResourceReference' to 'ResourceReference'
Что нужно сделать чтобы он нормально конвертировал? Задача не исправить тип в BuilderInfo
а именно конвертировать.
using System;
public class Program
{
public static void Main()
{
var a = new BuilderComponent<string>("Hi!");
a.Write();
}
}
public class GameComponent { }
public class SceneObject : GameComponent { }
public class ResourceReference<T> where T : GameComponent {}
public interface IBuilderResource { ResourceReference<GameComponent> GetPath ( ResourceReference<GameComponent> res); }
public class BuilderComponent<T> : IBuilderResource{
T str;
public BuilderComponent(T str) { this.str = str; }
public void Write() { Console.WriteLine(str); }
public ResourceReference<GameComponent> GetPath ( ResourceReference<GameComponent> res) { return res; }
}
public interface IBuilderViewInfo { ResourceReference<SceneObject> GetPath(); }
public class BuilderInfo : IBuilderViewInfo {
protected readonly ResourceReference<SceneObject> LoadedResources;
protected readonly IBuilderResource BuilderResource;
public BuilderInfo( ResourceReference<SceneObject> loadedResources, IBuilderResource builderResource)
{
LoadedResources = loadedResources;
BuilderResource = builderResource;
}
public ResourceReference<SceneObject> GetPath() {
return BuilderResource.GetPath( LoadedResources );
}
}
Для эксперимента тестовый образец: https://dotnetfiddle.net/oCqSlq
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Дорогие друзья, хочу реализовать шифрование некоторых файлов на языке с# Проблема заключается в том, что ключ имеет длину 64 байта, и мне соответственно...
В диспетчере задач, во вкладке производительность можно нажать на "Диск 0 (c:)"Как получить переменную с его активным временем в процентах?
Почему Invoke не идёт в комплект textbox и что можно придумать?