【发布时间】:2012-09-19 00:49:27
【问题描述】:
不确定这是否是一个多余的问题,但考虑一下我有这些方法:
void Foo(SomeClass x)
{
//Some code
}
void Foo(AnotherClass x)
{
//Some code
}
假设我想用 null 调用特定的重载(SomeClass 之一),这是我的选择:
Foo((SomeClass)null)
Foo(null as SomeClass)
Foo(default(SomeClass))
基本上,哪个是最好的选择?不同方法之间是否存在显着的性能差异?一种特定的方式通常被认为比其他方式更“优雅”吗?
谢谢
【问题讨论】:
-
它不会产生语义上的差异(我想知道有什么 IL 差异,如果有的话......)。始终如一。我总是使用前者,因为我喜欢 C# 中的“预先输入”。
-
我认为您可能需要重新评估您在这里尝试做的事情。
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: c# casting overloading default explicit