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>();