小编Rob*_*own的帖子

如何将lambda表达式翻译成英文?

我是一名VB.NET程序员,也知道一些C#.我最近遇到过lambda表达式,在VB中看起来像这样:

a = Function() b + c
Run Code Online (Sandbox Code Playgroud)

但是在C#中它们看起来像这样:

a => b + c;
Run Code Online (Sandbox Code Playgroud)

(对我来说,这看起来很像C中奇怪的指针表达式)

问题在于,在阅读C#代码时,我会在心理上将运算符解析为英语单词.因此a = b + c;变成"添加b和c并分配给".然而,我在内置解析器中没有用于=>运算符的精神翻译,因此a => b + c;变成"等于指向b和c的指针",这是没有意义的,或者"a是b和c的lambda",这是可怕的.

我确信语言创建者意味着该运营商能够代表一个概念,并且该概念应该能够简化为一个单词或非常短的短语.

那么=>运营商的英文翻译是什么?

ps请注意,我试图使示例尽可能简单,以免陷入具体细节.

c# vb.net lambda

6
推荐指数
2
解决办法
599
查看次数

SQL数据读取器 - 如何优雅地处理空列值

我正在使用SQLDataReader从数据库中检索可能为null的值.我已经解决了如何处理Null字符串值,但无法使用相同的技巧来处理整数或布尔值:

Using cmd As DbCommand = store.GetStoredProcCommand("RetrievePOCO")
    store.AddInParameter(cmd, "ID", DbType.Int32, ID)
    Using reader As IDataReader = store.ExecuteReader(cmd)
        If reader.Read() = True Then
            Dim newPOCO As New POCO()
            With newPOCO
                'If the source column is null TryCast will return nothing without throwing an error
                .StatusXML = TryCast(reader.GetString(reader.GetOrdinal("StatusXML")), String)
                'How can a null integer or boolean be set elegantly?
                .AppType = TryCast(reader.GetInt32(reader.GetOrdinal("AppType")), System.Nullable(Of Integer))
                .Archived = TryCast(reader.GetBoolean(reader.GetOrdinal("Archived")), Boolean)
Run Code Online (Sandbox Code Playgroud)

那么如何优雅地设置null整数或布尔值呢?我已经在C#中看到了建议,但它们没有正确转换为VB,给出'TryCast操作数必须是引用类型,但是整数?是值类型'编译器错误.

vb.net sqldatareader

3
推荐指数
1
解决办法
6558
查看次数

标签 统计

vb.net ×2

c# ×1

lambda ×1

sqldatareader ×1