c#方法参数API设计
我想讨论API方法设计 我们正在构建一个c#dll,它将负责一些机器操作(如开门、关门等),我想向客户端公开一个函数(我们称之为“doAction(parameters…”)。此函数将获得一个参数,该参数是操作的类型(参数) 我的问题是:设计论点的最佳方式是什么?如果你能给我一些例子的链接。它可以是一个常量类。字符串或枚举类,任何可以专业设计但易于使用的内容 谢谢。看看 除此之外,您可能希望使用c#方法参数API设计,c#,parameters,methods,arguments,C#,Parameters,Methods,Arguments,我想讨论API方法设计 我们正在构建一个c#dll,它将负责一些机器操作(如开门、关门等),我想向客户端公开一个函数(我们称之为“doAction(parameters…”)。此函数将获得一个参数,该参数是操作的类型(参数) 我的问题是:设计论点的最佳方式是什么?如果你能给我一些例子的链接。它可以是一个常量类。字符串或枚举类,任何可以专业设计但易于使用的内容 谢谢。看看 除此之外,您可能希望使用DoAction方法实现IAction 比如 interface IAction { void
DoAction
方法实现IAction
比如
interface IAction
{
void DoMethod();
}
及
将每种方法作为单独的方法公开似乎更为自然,如:
public class Machine
{
public void OpenDoor();
public void CloseDoor();
// other methods
}
其用途如下:
Machine NewMachine = new Machine();
NewMachine.OpenDoor();
NewMachine.CloseDoor();
这段代码可读性很强
但是,如果您真的对从一个方法执行所有操作感兴趣,那么枚举值就足够了:
public class Machine
{
public enum Action
{
OpenDoor,
CloseDoor,
// other values
}
public void DoAction(Action ActionToDo)
{
switch(ActionToDo)
{
case OpenDoor:
// open the door
break;
case CloseDoor:
// close the door
break;
default:
break;
}
}
}
为什么你只想要一种方法?使用像
OpenDoor(intdoornum)这样的方法似乎更为自然;关门(内门数,门砰的一声);OpenClosedOrAjar GetDoorState(intdoornum)代码>忘记告诉了。这是我的设计要求。为什么在你的设计要求中?是客户让我为他开发dll的。这就是他们的工作方式。我看了你推荐的文章。这是一个有趣的方法,但我不知道它对我有什么帮助。关于界面,你能提供更多细节吗?谢谢。您可以将实现接口的类传递给该方法。因此,它们都实现了相同的方法,但做了它们应该做的事情。这将允许您使这个数据库/XMl成为驱动的。您需要向我们展示更多关于调用方法的信息,以及您如何决定执行哪个操作……太好了,这是一个很好的示例。谢谢
public class Machine
{
public enum Action
{
OpenDoor,
CloseDoor,
// other values
}
public void DoAction(Action ActionToDo)
{
switch(ActionToDo)
{
case OpenDoor:
// open the door
break;
case CloseDoor:
// close the door
break;
default:
break;
}
}
}