gpt4 book ai didi

c# - 类型转换泛型

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

有人可以帮我解决这个问题吗?

我有以下类(class):

public partial class FObjectSet<T> : IObjectSet<T> where T : class
{
...
}

我还有以下类(class):

public partial class FContext : IContext, IDisposable
{
public ObjectSet<T> CreateObjectSet<T>() where T : class
{
var fakeObjectSet = new FObjectSet<T>();
return (fakeObjectSet as IObjectSet<T>) as ObjectSet<T>;
}
}

CreateOjectSet 方法返回 null,因为转换无效。

附注上面的代码试图伪造 System.Data.Objects.ObjectContext.CreateObjectSet 方法。

最佳答案

在您的示例中,FObjectSet 似乎并未继承自 ObjectSet。它只实现了 IObjectSet 接口(interface)。

如果它确实继承自 ObjectSet,则在将其转换为 ObjectSet 之前不需要将其转换为 IObjectSet,事实上,您根本不需要转换它...

public partial class FObjectSet<T> : ObjectSet<T> where T : class
{
...
}

public partial class FContext : IContext, IDisposable
{
public ObjectSet<T> CreateObjectSet<T>() where T : class
{
var fakeObjectSet = new FObjectSet<T>();
return fakeObjectSet;
}
}

关于c# - 类型转换泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5724639/

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