我不希望VB.NET和C#开发者之间发生战争,我的目标也不是打开C#VS VB.NET对抗.
我希望大家列出一个在C#中大量使用的功能,但在VB.NET 2.0中不可用,你将如何解决类似的行为或目的呢?
例如:
C#
接受void(return)lambda表达式.这是FNH映射的示例:
Component(x => x.Address, m => {
m.Map(x => x.Number);
m.Map(x => x.Street);
m.Map(x => x.PostCode);
});
Run Code Online (Sandbox Code Playgroud)
这在VB.NET 4.0之前是不可能的(假设在VB.NET 4.0中可行)
VB.NET
必须编写一个帮助方法(Sub),并提供AddressOf这个方法以便解决.
Private Sub Helper(ByVal m As MType)
m.Map(Function(x) x.Number)
m.Map(Function(x) x.Street)
m.Map(Function(x) x.PostCode)
End Sub
...
Component(Function(x) x.Address, AddressOf Helper)
Run Code Online (Sandbox Code Playgroud)
现在我知道,它不是VB.NET 2.0,但这只是一个例子.VB.NET 3.0和3.5也可以使用.请提一下这个版本的VB.NET.