获取尚未实例化的类的函数的句柄 - c#

我是C#的新手。

我想做的事情似乎有些令人费解。
首先,我们要处理一些函数以便稍后执行。我知道我可以通过以下方式实现:

List<Action> list = new List<Action>();
list.Add( () => instanceA.MethodX(paramM) );
list.Add( () => instanceA.MethodY(paramN, ...) );

for(Action a in list) {
    a();
}

但是,如果instanceA对象尚不存在,但是我知道在调用相应函数时该对象将存在,该怎么办? MethodX和MethodY在我不应该修改的外部库上。

-为什么:考虑这种情况:类A有100个方法,每个方法根据类A的状态返回不同的浮点数。但是,根据其他状态,我们可能只想访问前5个方法,或者只访问第一个和第四个方法。此方法适用的类状态可能会随时间变化。
我的想法是在所有100种方法中都有一个大列表,然后使用与该方法相对应的索引,仅使用适当的方法(例如[1,2,3,4,5]或[ 1,4])。
然后,一旦创建了对象A,我将依次运行子列表LL中的所有不同方法,以某种方式由对象A调用它们。

关于如何实现这一想法?

参考方案

您可以使用List<Action<YourClass>>,然后添加如下内容:

lst.Add(x => x.Method1());
lst.Add(x => x.Method2());

然后,当您要执行方法时,请传入实例:

lst[0](theInstance);

剃刀付款集成->如何通过关闭按钮X检测剃刀付款模型是否关闭 - javascript

当用户关闭而无需付款时,我在CI框架中使用Razorpay,请创建razor支付模型,然后取消订单,我希望按状态更改为已取消的状态触发查询。所以我怎么能检测到这一点。我已经通过单击jQuery单击关闭功能但无法使用... javascript大神给出的解决方案 Razorpay提供了JS方法来检测模式关闭。您编写的任何JS代码都不会在结帐页面上运行,因为它是…

如何使用箭头符号(->)创建受保护的方法? - java

当我们编写以下代码时Stream.of(1,2,3,4,5).filter(i -> (i%2 == 0)).map( i -> i*i ); 表达式i -> (i%2 == 0)或i -> i*i将变为私有方法。在我的用例中,编写了一个junit测试,以确保没有方法是私有的(是的,这是强制性的),并且对于这些lambda表达式而言,…

粗糙的Unicode->没有CLDR的语言代码? - javascript

我在写字典应用。如果用户键入Unicode字符,我想检查该字符是哪种语言。例如字 - returns ['zh', 'ja', 'ko'] العربية - returns ['ar'] a - returns ['en', 'fr', …

将对象转换为List <object> - c#

我看过类似的问题,但没有什么合适的。我有一个碰巧包含列表的对象。我想把它变成我可以列举的东西。例如:object listObject; // contains a List<Something> List<object> list; list = listObject as List<object>; // list c…

将谓词<T>转换为Func <T,bool> - c#

我有一个包含成员Predicate的类,希望在Linq表达式中使用该类:using System.Linq; class MyClass { public bool DoAllHaveSomeProperty() { return m_instrumentList.All(m_filterExpression); } private IEnumerable&…