C# 铸造仿制药
有人能帮我解决这个问题吗 我有以下课程:C# 铸造仿制药,c#,.net,generics,C#,.net,Generics,有人能帮我解决这个问题吗 我有以下课程: public partial class FObjectSet<T> : IObjectSet<T> where T : class { ... } public partial class FContext : IContext, IDisposable { public ObjectSet<T> CreateObjectSet<T>() where T : class {
public partial class FObjectSet<T> : IObjectSet<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 as IObjectSet<T>) as ObjectSet<T>;
}
}
公共部分类FObjectSet:IObjectSet其中T:class
{
...
}
我还有以下课程:
public partial class FObjectSet<T> : IObjectSet<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 as IObjectSet<T>) as ObjectSet<T>;
}
}
公共部分类FContext:IContext,IDisposable
{
public ObjectSet CreateObjectSet(),其中T:class
{
var fakeObjectSet=new FObjectSet();
返回(fakeObjectSet作为IOObjectSet)作为ObjectSet;
}
}
CreateOjectSet
方法返回空值,因为强制转换不起作用
p、 上面的代码试图伪造
System.Data.Objects.ObjectContext.CreateObjectSet
方法。在您的示例中,FObjectSet似乎不是从ObjectSet继承的。它只实现IObjectSet接口
如果它确实从ObjectSet继承,则在将其转换为ObjectSet之前,您不需要将其转换为IOObjectSet,事实上,您根本不需要转换它
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;
}
}
公共部分类FObjectSet:ObjectSet其中T:class
{
...
}
公共部分类FContext:IContext,IDisposable
{
public ObjectSet CreateObjectSet(),其中T:class
{
var fakeObjectSet=new FObjectSet();
返回fakeObjectSet;
}
}
这不起作用,因为FObjectSet
没有扩展ObjectSet
。您可以返回IObjectSet
,但我不知道这是否符合您的要求。FObjectSet是否继承自ObjectSet
?如果不行,那就不行了。