Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blazor 在处理事件时,通过创建新委托增加了什么好处?_Blazor - Fatal编程技术网

Blazor 在处理事件时,通过创建新委托增加了什么好处?

Blazor 在处理事件时,通过创建新委托增加了什么好处?,blazor,Blazor,这会增加什么价值: <MyControl ServerData="@(new Func<TableState, Task<TableData<int>>>(ServerReload))"> 与此相比: <MyControl ServerData="@ServerReload"> 其中,处理程序是: private async Task<TableData<int>&g

这会增加什么价值:

<MyControl ServerData="@(new Func<TableState, Task<TableData<int>>>(ServerReload))">

与此相比:

<MyControl ServerData="@ServerReload">

其中,处理程序是:

private async Task<TableData<int>> ServerReload(TableState state) {...}
private async Task ServerReload(表状态){…}

使用第二种方法,没有提到第一种方法。

没有“好处”,因为没有区别

以下是所有汇编:

var f1=newfunc(ServerReload));
Func f2=服务器重新加载;
f2=f1;
第二种形式只是从C#2开始提供的一种速记形式。但是它被编译成第一个长形式,Func是一个委托,需要重新编译

你会得到完全相同的IL代码,所以唯一的区别是可读性。第二种简短形式当然更可取

在C#1中,你必须写:

MyDelegateType myDelegateVar = new MyDelegateType(MethodName);
从C#2开始,你可以写与

MyDelegateType myDelegateVar = MethodName;

嗯,我想这是有区别的。例如,风格。可读性。可维护性。等等。是的,我认为这是显而易见的。这就给出了确切的答案:增加了一个负的可读性值。