Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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# 正在初始化该实例以获取其类型。仅当该实例尚未实例化时。 public class BaseClass { public int Id { get; set; } public void MethodOfBase(){} } public c_C#_.net_Oop - Fatal编程技术网

C# 正在初始化该实例以获取其类型。仅当该实例尚未实例化时。 public class BaseClass { public int Id { get; set; } public void MethodOfBase(){} } public c

C# 正在初始化该实例以获取其类型。仅当该实例尚未实例化时。 public class BaseClass { public int Id { get; set; } public void MethodOfBase(){} } public c,c#,.net,oop,C#,.net,Oop,正在初始化该实例以获取其类型。仅当该实例尚未实例化时。 public class BaseClass { public int Id { get; set; } public void MethodOfBase(){} } public class Deliver1 : BaseClass { public string Name { get; set; } } public class Deliver2 : BaseClass { public string C


正在初始化该实例以获取其类型。仅当该实例尚未实例化时。
public class BaseClass
{
    public int Id { get; set; }
    public void MethodOfBase(){}
}
public class Deliver1 : BaseClass
{
    public string Name { get; set; }
}
public class Deliver2 : BaseClass
{
    public string ClassName { get; set; }
}
public class Deliver3 : BaseClass
{
    public int Age { get; set; }
}
    public void Method1()
    {
        Deliver1 deliver1 = null;
        MethodWithBaseClass(deliver1);

        Deliver2 deliver2 = null;
        MethodWithBaseClass(deliver2);

        Deliver3 deliver3 = new Deliver3();
        MethodWithBaseClass(deliver3);


    }

    public void MethodWithBaseClass(BaseClass baseClass)
    {
        if(baseClass == null)
            baseClass = ???
    }
    public void MethodWithBaseClass(BaseClass baseClass)
    {
        if (baseClass == null && baseClass is Deliver1)
            baseClass = new Deliver1();
        else if.....
    }
public void MethodWithBaseClass<T>(ref T instance) where T : new()
{
    if (instance == null)
    {
        instance = new T();
    }
}
Deliver1 deliver1 = null;
MethodWithBaseClass(ref deliver1);
public BaseClass MethodWithBaseClass(Type baseClass)
{
    return (BaseClass) Activator.CreateInstance(baseClass);
}
var newInstance = MethodWithBaseClass(typeof(Derived1));
public T MethodWithBaseClass<T>() where T: BaseClass, new()
{
    return new T();
}
var newInstance = MethodWithBaseClass<Derived1>();