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