gpt4 book ai didi

多个类的 C# 接口(interface)

转载 作者:行者123 更新时间:2023-11-30 19:34:03 25 4
gpt4 key购买 nike

我有一个数据提供程序项目来访问数据库。这是由各种类组成的(PersonDataProvider、JobDataProvider ...)我想创建一个界面。我是否必须为每个类创建一个接口(interface)?我很想创建一个接口(interface)而不是继承所有类。这涉及使所有项目类成为部分类并更改类名.......但我认为这不是最好的解决方案。有什么建议吗?

最佳答案

您不继承实现它的接口(interface)。无需将类设为部分类即可为其添加接口(interface)。

接口(interface)是类订阅的契约,表明它将遵守接口(interface)中描述的方法并将适本地实现它们。对于您的场景,您将创建一个接口(interface)并在您的类中实现它,然后您可以将各种访问器类的实例作为接口(interface)的实例传递。

例如:

public interface IDataProvider
{
void LoadData();
}

数据提供者将如下所示:

public class MyDataProvder1 : IDataProvider
{
// Some methods

// Must implement LoadData
public void LoadData()
{
// Do something
}
}

public class MyDataProvder2 : IDataProvider
{
// Some methods

// Must implement LoadData
public void LoadData()
{
// Do something
}
}

然后您可以将对象作为 IDataProvider 传递,如下所示:

IDataProvider DataProviderA = new MyDataProvider1();
IDataProvider DataProviderB = new MyDataProvider2();

// Call function that expects an IDataProvider

DoSomething(DataProviderA);
DoSomething(DataProviderB);

...

public void DoSomething(IDataProvider DataProvider)
{
DataProvider.LoadData();
}

希望这能帮您解决问题。

关于多个类的 C# 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2335826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com