Ref*_*din 11 .net c# delegates optional-parameters
我有下面的代码工作正常,直到我尝试添加该bool NetworkAvailable = true部分.现在我Method name expected在下面的第4行得到编译时异常.
void NetworkStatus_AvailabilityChanged(object sender, NetworkStatusChangedArgs e)
{
var networkAvailable = e.IsAvailable;
SetUpdateHUDConnectedMode d = new SetUpdateHUDConnectedMode(UpdateHUDConnectedMode(networkAvailable));
this.Invoke(d);
}
delegate void SetUpdateHUDConnectedMode(bool NetworkAvailable = true);
private void UpdateHUDConnectedMode(bool NetworkAvailable = true)
{
...
}
Run Code Online (Sandbox Code Playgroud)
不可否认,我是新手Delegates,Optional Parameters所以我会感激任何见解.谢谢.
Hen*_*man 25
在某种程度上非常有限.使用C#4:
public delegate void Test(int a, int b = 0);
static void T1(int a, int b) { }
static void T2(int a, int b = 0) { }
static void T3(int a) { }
Test t1 = T1;
Test t2 = T2;
Test t3 = T3; // Error
Run Code Online (Sandbox Code Playgroud)
然后你可以打电话
t1(1);
t1(1, 2);
t2(2);
t2(2, 3);
Run Code Online (Sandbox Code Playgroud)
委托指向方法定义.
实例化指向方法的委托时,不能指定任何参数.
相反,您需要将参数值传递给Invoke方法,如下所示:
SetUpdateHUDConnectedMode d = UpdateHUDConnectedMode;
this.Invoke(d, e.IsAvailable);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11291 次 |
| 最近记录: |