将子类作为参数传递

s-a*_*a-n 2 c# oop

我有一个基类

public abstract class BaseClass
{
    public DateTime CreateTime { get; set; }
    public string CreateUser { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

以及从基类派生的少数子类

public class Child1 : BaseClass
{
}

public class Child2 : BaseClass
{
}
Run Code Online (Sandbox Code Playgroud)

对于使用这些子类的客户端,我可以在这些类之外创建一个方法,该方法可以接受两个子类作为参数并更改其基类对象吗?

nvo*_*igt 5

是的你可以。这就是基类和/或接口的要点:

public abstract class BaseClass
{
    public DateTime CreateTime { get; set; }
    public string CreateUser { get; set; }
}

public class Child1 : BaseClass
{
}

public class Child2 : BaseClass
{
}

public static class Test
{
   public static void SetBaseClassValue(BaseClass b)
   {
      b.CreateUser = "John";
   }
}

public static class Program
{
   public static void Main()
   {
      var c1 = new Child1();
      var c2 = new Child2();

      Test.SetBaseClassValue(c1);
      Test.SetBaseClassValue(c2);

      Console.WriteLine(c1.CreateUser);
      Console.WriteLine(c2.CreateUser);
      Console.ReadLine();
   }

}
Run Code Online (Sandbox Code Playgroud)