C# 是否可以传递抽象类&x27;对象作为类实例的参数?

C# 是否可以传递抽象类&x27;对象作为类实例的参数?,c#,abstract,C#,Abstract,我想知道是否可以将抽象类的属性(或函数)值传递给实例类参数?或者我必须创建一个私有成员变量,将数据分配给它,并将此变量传递给实例类参数吗?这听起来令人困惑,因此下面的示例将有助于更好地阐明这一点 请看“DatabaseDataDealer”类中的“new DealerAccountRepository(MyEnvironmentSetting);”部分 如果您询问某个方法是否可以接受这样的抽象对象: private void DoSomething(AEnvironmentSetting a)

我想知道是否可以将抽象类的属性(或函数)值传递给实例类参数?或者我必须创建一个私有成员变量,将数据分配给它,并将此变量传递给实例类参数吗?这听起来令人困惑,因此下面的示例将有助于更好地阐明这一点

请看“DatabaseDataDealer”类中的“new DealerAccountRepository(MyEnvironmentSetting);”部分


如果您询问某个方法是否可以接受这样的抽象对象:

private void DoSomething(AEnvironmentSetting a)
然后是的,它可以,并且您可以使用抽象类中的每个属性和方法,包括调用抽象方法。 但是,无论谁调用此方法,都必须发送calss的实例来继承抽象类,如下所示:

DatabaseDataDealer d = new DatabaseDataDealer ();
DoSomething(d);
如果将从
DoSomething
调用抽象方法,则将调用
DatabaseDataDealer
的实现

在构造函数中,您可以调用base,然后将得到抽象构造函数。
最后让我说,学习这一点的最好方法是尝试。编译并运行您的代码,并设置一个断点,看看代码是如何运行的,以及通过了哪些步骤

我试图理解您的意思。另外,我发现这个方法“newdealeraccountrepository(MyEnvironmentSetting());”现在可以使用了。我没有给它加上比喻。现在,如果可以通过从抽象类获取它的值,使它成为无构造函数的函数,例如“new DealerAccountRepository()”。嗯…@fletchsod它可以从抽象类中获取它的值,如果抽象类有一个知道如何获取值的构造函数。你需要的价值是什么?你从哪里获得它?@fletchsod顺便说一句,如果它对你有帮助,请接受我的回答。我在这里回答你的每一个问题
DatabaseDataDealer d = new DatabaseDataDealer ();
DoSomething(d);