在工作中,我经常在一些项目中工作,这些项目必须在建造期间或生命早期设置某些物体的许多属性.为了方便和可读性,我经常使用该With语句来设置这些属性.我发现
With Me.Elements
.PropertyA = True
.PropertyB = "Inactive"
' And so on for several more lines
End With
Run Code Online (Sandbox Code Playgroud)
看起来好多了
Me.Elements.PropertyA = True
Me.Elements.PropertyB = "Inactive"
' And so on for several more lines
Run Code Online (Sandbox Code Playgroud)
对于只设置属性的很长的语句.
我注意到With在调试时使用时存在一些问题; 但是,我想知道是否有任何令人信服的理由避免With在实践中使用?我总是假设通过编译器为上述两种情况生成的代码基本相同,这就是为什么我总是选择写出我觉得更具可读性的原因.
我一直在看一些C#代码:
List<Employee> Employees = new List<Employee>{
new Employee{firstname="Aamir",lastname="Hasan",age=20},
new Employee{firstname="awais",lastname="Hasan",age=50},
new Employee{firstname="Bill",lastname="Hasan",age=70},
new Employee{firstname="sobia",lastname="khan",age=80},
};
Run Code Online (Sandbox Code Playgroud)
现在当我将其转换为vb.net时
Dim Employees as List(Of Employee) = New List(Of Employee)() With { New Employee() With { _
.firstname = "Aamir", _
.lastname = "Hasan", _
.age = 20 _
}, _
New Employee() With { _
.firstname = "awais", _
.lastname = "Hasan", _
.age = 50 _
}, _
New Employee() With { _
.firstname = "Bill", _
.lastname = "Hasan", _
.age = …Run Code Online (Sandbox Code Playgroud)