Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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# - Fatal编程技术网

C# 将工厂类与泛型一起使用

C# 将工厂类与泛型一起使用,c#,C#,我有以下课程: public class ThisClass<T> { public T ThisInstance { get; set; } public int Infoflag { get; set; } } 这是可能的,还是我需要将工厂类和实例类分开?只需创建一个静态ThisClasshelper类,并将静态工厂方法放在那里: public static class ThisClass { public static ThisClass<T&g

我有以下课程:

public class ThisClass<T>
{
    public T ThisInstance { get; set; }
    public int Infoflag { get; set; }
}

这是可能的,还是我需要将工厂类和实例类分开?

只需创建一个静态
ThisClass
helper类,并将静态工厂方法放在那里:

public static class ThisClass
{
    public static ThisClass<T> Create<T>(T instance) =>        
        new ThisClass<T>()
        {
            Infoflag = 3
        };
}

如果没有更多的数据,很难找出哪种模式更适合你。

是打字错误吗?我看到
ThisClass
ThisClass
不一样。
public static ThisClass<T> GetNewClass(T instance) =>        
    new ThisClass<T>()
    {
        Infoflag = 3
    };
ThisClass<SomeClassType>.GetNewClass(instanceClass);
ThisClass.GetNewClass(instanceClass);
public static class ThisClass
{
    public static ThisClass<T> Create<T>(T instance) =>        
        new ThisClass<T>()
        {
            Infoflag = 3
        };
}
public interface IThisClass<T> { ... }

public class ThisClass
{
    private class InnerThisClass<T>: IThisClass<T> { ... }
    public static IThisClass<T> Create<T>(T instance) => ...
}