我有一个同事,他喜欢写下他的空检查,如下所示:
if (!ReferenceEquals(myObject, null))
Run Code Online (Sandbox Code Playgroud)
另一方面,我觉得这种语法很难阅读并且更喜欢:
if (myObject != null)
Run Code Online (Sandbox Code Playgroud)
我发现一些文章和堆栈溢出问题讨论了关于运算符重载的ReferenceEquals的优点,但是在运算符重载方案之外,ReferenceEquals vs ==有什么好处?
在WCF/SOAP世界中处理多态业务对象的正确方法是什么?
在我看来,SOA和OOP彼此不一致 - 要公开一个干净的WSDL,你需要具体的对象,通常甚至不利用继承.另一方面,可能在底层系统中,您需要遵循适当的OO设计.
人们通常在这做什么?构建一组WCF合同对象,放弃OOP原则,然后转换为实际逻辑层中的另一组对象?
我不完全确定C#的作用是什么,所以我没有运气搜索VB.Net等效语法(如果它存在,我怀疑它可能没有).
在c#中,您可以这样做:
public void DoSomething() {
new MyHelper().DoIt(); // works just fine
}
Run Code Online (Sandbox Code Playgroud)
但据我所知,在VB.Net中,您必须将辅助对象分配给局部变量,否则您只会收到语法错误:
Public Sub DoSomething()
New MyHelper().DoIt() ' won't compile
End Sub
Run Code Online (Sandbox Code Playgroud)
这是我每天都在混合语言项目中遇到的好奇心之一 - 通常有一个VB.Net等价物,它使用的语法不那么明显.任何人?