Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 铸造仿制药_C#_.net_Generics - Fatal编程技术网

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
?如果不行,那就不行了。