Rya*_*ohn 5 c# constructor instantiation method-chaining
例1:
SomeObject someObject = new SomeObject();
if (someObject.Method())
{
//do stuff
}
//someObject is never used again
Run Code Online (Sandbox Code Playgroud)
VS
例2:
if (new SomeObject().Method())
{
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
使用第一种方法比第二种方法有什么好处,反之亦然?
Ree*_*sey 12
至少有三个潜在的好处:
可读性:第一个在第一个示例中比第二个示例的语法更明显,尤其是对于较新的开发人员.
更好的调试经验:如果构造函数SomeObject抛出异常,在第一种情况下,调试器将在该行中断.在第二种情况下,异常是在构造函数还是方法中并不明显.设置断点和检查对象上的值也会出现同样的问题 - 在第二种情况下这将很难,并且需要在方法内部设置断点.
在第一种情况下,您可以使用该单个调用之外的对象.如果您确实只需要一个方法进行单个调用,并且不需要对象引用,那么静态方法可能更合适.