Так вот моя проблема:Generic проблема интерфейса
У меня есть интерфейс:
public interface ICell<Feature>
where Feature: struct, IComparable<ICell<Feature>>
{
List<ICell<Feature>> Window { get; set; }
Feature GenusFeature { get; set; }
Double VitalityRatio { get; set; }
String PopulationMarker { get; set; }
Boolean Captured { get; set; }
}
И хотел реализовать ISubstratum
интерфейс таким образом:
public interface ISubstratum<K,T> : IDisposable
where K : IDisposable
where T : struct
{
ICell<T> this[Int32 i, Int32 j] { get; set; }
}
Но компилятор говорит, что:
The type 'T' cannot be used as type parameter 'Feature' in the generic type or method 'Colorizer.Core.ICell<Feature>'. There is no boxing conversion or type parameter conversion from 'T' to 'System.IComparable<Colorizer.Core.ICell<T>>'.
В некоторых возможных ISubstratum
реализации я планировал передать Bitmap как K & & ICell (удлинен инфо пикселей), как Т.
Как решить эту проблему?
Спасибо!
Хороший призыв к переименованию функции. Это на самом деле поймало меня сначала, когда я читал код. – Tim
Спасибо! Теперь это строит отлично) – lexeme