相关疑难解决方法(0)

C#委托给两个具有不同参数的方法

我使用以下方法:

public void M1(Int32 a)
{
  // acquire MyMutex
  DoSomething(a);
  // release MyMutex
}
Run Code Online (Sandbox Code Playgroud)

public void M2(String s, String t)
{
  // acquire MyMutex
  DoSomethingElse(s, t);
  // release MyMutex
}
Run Code Online (Sandbox Code Playgroud)

从我到目前为止所发现的情况来看,似乎不可能对具有不同签名的两种方法使用单个委托.

有没有其他选择写这样的东西:

public void UsingMutex(...)
{
  // acquire MyMutex
  ...
  // release MyMutex
}

UsingMutex(M1);
UsingMutex(M2);
Run Code Online (Sandbox Code Playgroud)

我现在能想到的只是使用两个委托和一个布尔标志来知道要调用哪个委托,但这不是一个长期的解决方案.

可以将泛型与代表结合起来吗?如果是这样,您是否有任何类型的文档链接?

环境:C#2.0

c# generics delegates

16
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

delegates ×1

generics ×1