在满足某些条件时如何运行任意函数?

时间:2019-04-15 02:13:15

标签: c# delegates

我正在寻求创建一个库,该库允许用户创建带有文本的控制台选项(用户将在控制台中看到的内容)以及与选择任何给定选项相关联的功能或另一组选项。 >

我现在正在努力的是拥有两个核心类来处理此功能:

OptionView(该特定方案的选项集)

选项(一个特殊的选项,用于显示显示的文本并包含将在选中时运行的功能,或者将显示新的OptionView(用于嵌套选择)

示例用法如下:

OptionView mainView = new OptionView();
mainView.AddOption("Option That Results in Another View", OptionView.CreateView(someTextFile)); // returns a new OptionView based off of a predefined set of options in a file.

// or

mainView.AddOption("Leaf Option", FunctionToRunWithUnknownArguments);

这一切都可以通过设置文件完成,从而避免了必要时手动创建视图的情况。

最后一部分是执行/显示OptionView:

mainView.Execute();

,此时将枚举选项,用户可以键入关联的数字以选择任何选项。

如果我要将这两个选项都添加到mainView,请致电mainView.Execute();

将出现以下内容:

1. Option That Results in Another View
2. Leaf Option

,用户可以键入“ 1”或“ 2”分别显示另一个视图或运行某些指定功能。

所以我需要传递的功能不具有任何特定签名的原因是,这样该系统可以不受限制地用于各种应用程序中。

我想一种方法是使Option泛型并使函数传入参数化依赖于用户是否扩展了Option类?但是,对此的限制必须为通用Option允许任意数量的参数。老实说,我什至不确定这是否可行,因为我从未尝试过。

有什么想法可以实现这种体面的方式?还是有可能?

0 个答案:

没有答案