如何初始化一个继承接口的class?
How to initalize a class that inherits interface?
我正在尝试在我的代码中应用 SOLID
。我有一个包含多个选项的菜单。每个菜单都有一些 buttons.I 正在为第一个菜单按钮制作 Interface
:
interface IConvertToPartListButton
{
void ConvertToPartList();
}
class BtnConvertToPartList : IConvertToPartListButton
{
void ConvertToPartList()
{
//Do something
}
}
之后,我实现了一个界面,inherits
我创建的那两个按钮
interface IImportPartsButtons : IConvertToPartListButton,IDeleteIP
{
}
所以对于每个菜单我都会这样做。之后我想继承所有的菜单按钮:
interface IButton : IImportPartsButtons,SecondMenuButtons,ThirdMenuButtons
{
}
当我尝试创建 class BtnConverToPartList
的新实例时,这是不可能的。
public static IButton GetButton() => new BtnConvertToPartList();
错误:
Cannot implicitly convert type 'MOSOSoftware.BtnConvertToPartList' to 'MOSOSoftware.IButton'.
如果我做错了什么请写下来,我是编程新手,我还在学习。谢谢!
你做错了继承。 "BtnConvertToPartList" 实现了 "IConvertToPartListButton",但 "IButton" 不是 "IConvertToPartListButton",直到您将 "IButton" 实现为 "IConvertToPartListButton"。请在下面找到更改后的代码,
interface IConvertToPartListButton : IButton
{
void ConvertToPartList();
}
interface IImportPartsButtons : IConvertToPartListButton
{
}
interface IButton
{
}
class BtnConvertToPartList : IConvertToPartListButton
{
public void ConvertToPartList()
{
//Do something
}
}
和实例化,
public static IButton GetButton() => new BtnConvertToPartList();
现在它应该可以工作了,因为 BtnConvertToPartList 也是 IButton,因为 IButton 是 IConvertToPartListButton。
我正在尝试在我的代码中应用 SOLID
。我有一个包含多个选项的菜单。每个菜单都有一些 buttons.I 正在为第一个菜单按钮制作 Interface
:
interface IConvertToPartListButton
{
void ConvertToPartList();
}
class BtnConvertToPartList : IConvertToPartListButton
{
void ConvertToPartList()
{
//Do something
}
}
之后,我实现了一个界面,inherits
我创建的那两个按钮
interface IImportPartsButtons : IConvertToPartListButton,IDeleteIP
{
}
所以对于每个菜单我都会这样做。之后我想继承所有的菜单按钮:
interface IButton : IImportPartsButtons,SecondMenuButtons,ThirdMenuButtons
{
}
当我尝试创建 class BtnConverToPartList
的新实例时,这是不可能的。
public static IButton GetButton() => new BtnConvertToPartList();
错误:
Cannot implicitly convert type 'MOSOSoftware.BtnConvertToPartList' to 'MOSOSoftware.IButton'.
如果我做错了什么请写下来,我是编程新手,我还在学习。谢谢!
你做错了继承。 "BtnConvertToPartList" 实现了 "IConvertToPartListButton",但 "IButton" 不是 "IConvertToPartListButton",直到您将 "IButton" 实现为 "IConvertToPartListButton"。请在下面找到更改后的代码,
interface IConvertToPartListButton : IButton
{
void ConvertToPartList();
}
interface IImportPartsButtons : IConvertToPartListButton
{
}
interface IButton
{
}
class BtnConvertToPartList : IConvertToPartListButton
{
public void ConvertToPartList()
{
//Do something
}
}
和实例化,
public static IButton GetButton() => new BtnConvertToPartList();
现在它应该可以工作了,因为 BtnConvertToPartList 也是 IButton,因为 IButton 是 IConvertToPartListButton。