ModelingDebug/README.md

72 lines
2.3 KiB
Markdown

# ModelingDebug
### C#-Net控制台程序
## 模块继承
如果一个类继承了Activity那么使用GetTypesInheritingFrom把他们全部获取
如果继承了请在里面加入一些可被识别的变量类型
```csharp
public static Title = "模块选择器";
public const Title = "模块选择器";
```
string Title 是模块的标题
int Priority 是优先级,数字越小越靠前展示
## 规范使用
继承了Activity的类的方法并且同时使用了模块选择器的 类 里面要有
Title Priority
## 选择器
```
string[] str = ["模块", "模块", "模块", "模块"];
var modeSwitch = new ModeSwitch("请选择你要执行的操作:", str, (a) =>
{
switch (a)
{
case 0:
//需要执行的方法模块
break;
case 1:
break;
default:
printfLine("还没有这个功能");
break;
}
});
```
## 模块选择器
正确的说是加载所有Activity的一个选择器
显示到页面中(如图)
![alt text](image.png)
## 选择器的使用
内置选择模式
可自由添加模块
PgUp/W 上选择
PgDn/S 下选择
1···9快捷数字选择
Enter(回车) 确定执行
Esc 选择退出 Enter(回车) 返回选择器
如果选择器被传入了一个类型,则选择器会返回这一个类
public ModeSwitch(object class_, string title, string[] a, Action<int> Enter, string message)
### 打包和运行
Visual Studio Code
Visual Studio 2022
其他能运行C# Net8.0的程序
### 方法
1. 模块选择器<br>
public ModeSwitch(object class_, string title, string[] a, Action<int> Enter, string message)
可选的是class_,message
class_是标记我可以用Esc返回这个类
message是底部的提示信息你可以在这里标注每个功能的使用方法
2. Activity<br>
自动获取被他继承子类的Title方法
3. TypeHelper<br>
获取所有被这个父类继承的子类
var ActivityType = new TypeHelper<>();
自定义 获取子类的静态标题和优先级的变量定义
public TypeHelper(string title, string Priority)
GetTitles()获取所有子类的标题
GetTypesInheritingFrom() 获取所有子类 这个默认在创建的时候就执行了
如果你要获取被获取的类的列表可以使用ActivityType.result这个就是列表