小编Won*_*Lee的帖子

C#lambda,分配局部变量vs返回数据


在C#中,lambda可以访问局部变量,也可以返回一些数据.

那么,哪种情况更好呢?

int num;
Func<int> func = ()=>{return 10;}
num = func();
Run Code Online (Sandbox Code Playgroud)

VS

int num;
Action action = ()=>{num = 10;}
Run Code Online (Sandbox Code Playgroud)

我认为,表现是不同的.哪个更好?



更新(我不知道如何使用StackOverflow)

我的代码在这里.

ErrorCode errorCode;
errorCode = DatabaseUtility.Read<ErrorCode>(
    conn,
    DatabaseUtility.CreateSelectQuery(....),
    reader =>
    {
        if(reader.Read())
            return ErrorCode.None;

        return ErrorCode.InvalidParam;
    });
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我可以这样做.

ErrorCode errorCode;
DatabaseUtility.Read(
    conn,
    DatabaseUtility.CreateSelectQuery(....),
    reader =>
    {
        if(reader.Read())
            errorCode = ErrorCode.None;
        else
            errorCode = ErrorCode.InvalidParam;
    });
Run Code Online (Sandbox Code Playgroud)

而且,这是方法定义.

public static class DatabaseUtility
{
    public static Read<T>(
        MySqlConnection conn,
        string query,
        Func<MySqlDataReader, T> callback);
}
Run Code Online (Sandbox Code Playgroud)

c# lambda

5
推荐指数
1
解决办法
817
查看次数

标签 统计

c# ×1

lambda ×1