【问题标题】:call method from all classes within namespace [duplicate]从命名空间中的所有类调用方法[重复]
【发布时间】:2018-02-10 19:52:28
【问题描述】:

我敢肯定这有一个词,但没有找到任何关于它的东西。我在“Namespace.Objects”中有几个类,我想在命名空间中的所有类上运行一个名为“RunThis”的 static 函数,而不必输入“Objects.Class1.RunThis()”对于每个班级。我想从 Namespace.MainClass 对象运行它并获取函数返回的值。我还需要能够检查对象的名称以避免尝试在没有它的类上运行它那里有一个基类对象,应该忽略所有其他继承自的基类对象。

命名空间(命名空间)
....对象(命名空间)
........BaseClass(类)
........Class1(类)
........Class2(类)
........Class3(类)
........Class4(类)
....MainClass(类)

【问题讨论】:

  • 你需要运行的方法是静态方法还是实例类方法?如果它是一个实例方法,那么您至少需要创建所有类的实例才能调用它。为了确保所有这些类都有这样的方法,它们应该实现一个接口来删除该方法。您面临什么实际问题?
  • 我知道这一点,但这不是我想要的。这将要求我每次添加新课程时都添加新行。所以那个 id 有一堆 'class1.runthis' 'class2.runthis' 这是我想要避免的。我想要一些东西基本上遍历命名空间中的类并运行“runthis”方法,而不必为主类文件中的每个单独的类键入它。
  • 我需要运行的方法是静态的
  • @user5426405,只需在文件开头使用using 指令即可。就像 using class1; 和 class1 中的方法一样可供您使用。花点时间阅读一下here
  • 你要找的词是“反射” :) stackoverflow.com/questions/79693/…

标签: c# .net c#-4.0


【解决方案1】:

首先:请向我们展示您到目前为止所取得的成就

第二:你可以考虑用string的名字来调用方法

在 stackoverflow 上查看以下答案:

https://stackoverflow.com/a/540075/7120278

如果您使用我提到的示例,您可以创建任何一组对象并调用方法

【讨论】:

    猜你喜欢
    • 2020-12-18
    • 2011-03-22
    • 2013-01-08
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 2014-01-17
    • 2014-10-28
    • 2021-07-22
    相关资源
    最近更新 更多