我有一个运算符比较泛型类型的问题.
public interface ISomeInterface<T> where T : SomeBaseClass{
}
public class SomeClass : SomeBaseClass{
}
Run Code Online (Sandbox Code Playgroud)
现在我们想用is运算符检查类型.我们有一个实现接口ISomeInterface的类的实例.
不幸的是,我们面临以下问题:
// someObject is an Instance of a class implementing interface ISomeInterface<SomeClass>
bool isSomeBaseClass = someObject is ISomeInterface<SomeBaseClass>; // false
bool isSomeClass = someObject is ISomeInterface<SomeClass>; // true
Run Code Online (Sandbox Code Playgroud)
是否可以检查变量泛型类型?
托比,提前谢谢
我有2个共享基类的类
DealBookmarkWrapper : BookmarkWrapper
StoreBookmarkWrapper : BookmarkWrapper
Run Code Online (Sandbox Code Playgroud)
我还有以下声明:
// 1 - This works
List<BookmarkWrapper> bm = new List<BookmarkWrapper>();
foreach(var d in deals)
{
bm.Add(new DealBookmarkWrapper(d));
}
// 2 - This does not work
List<BookmarkWrapper> bm2 = deals.Select(d => new DealBookmarkWrapper(d)).ToList();
Run Code Online (Sandbox Code Playgroud)
1)工作,但2需要演员工作.我不确定我是做错了什么,还是在第二种场景中确实需要演员.
有人对它有所了解吗?