gpt4 book ai didi

c# - 替换静态类来打包方法和变量

转载 作者:太空宇宙 更新时间:2023-11-03 20:48:20 24 4
gpt4 key购买 nike

我正在创建一个包含许多“测试”的应用程序。每个测试都有一个名称、描述和一些要运行的代码。

我想要一个测试名称列表 (ObservableCollection) 以显示在列表框中。当用户单击测试时,描述应出现在文本框中,当用户单击开始按钮时,相关方法应启动。

我决定将每个测试放在一个具有“名称”和“描述”属性以及“测试”方法的静态类中。但是列出类很难(尝试使用 Assembly.GetTypes() 但有点困难)。手动创建方法或类列表也不是一个好方法。我认为应该有更好的方法来实现我的目标。

有没有人有更好的主意?

最佳答案

为什么您决定将这些类设为静态?您可以将这些作为普通普通类。

你可以有一个像 ITestable 这样的接口(interface)

public interface ITestable
{
string Name {get;set;}
string Description {get;set;}
Task Test();
}
  1. 现在您可以搜索使用反射实现接口(interface)的类。
  2. 您可以从类列表中过滤非抽象类
  3. 然后您仍然可以过滤并获取具有无参数构造函数的类

现在使用反射,你可以实例化类来获取对象

var testable = (ITestable) Activator.CreateInstance(filteredClassType);

希望对您有所帮助。如果不方便澄清,我在我的项目中做了完全相同的事情。

关于c# - 替换静态类来打包方法和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58363978/

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