gpt4 book ai didi

c# - 通用接口(interface)问题

转载 作者:行者123 更新时间:2023-11-30 19:20:31 24 4
gpt4 key购买 nike

所以这是我的问题:

我有界面:

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我计划将位图作为 K && ICell(扩展像素信息)作为 T 传递。

如何解决?

谢谢!

最佳答案

基本上你必须对 T 有一个额外的约束:

where T : struct, IComparable<ICell<T>>

那么它应该可以正常工作。这需要满足对 Feature 的相同约束。在ICell<Feature> .

我还建议您重命名类型参数 FeatureTFeature使其更明显地成为类型参数。

关于c# - 通用接口(interface)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6023914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com