说我有这个:
public void DoThing (string text)
{
DoThingWithText(text);
}
public void DoThing (int number)
{
DoThingWithNumbers(number);
}
并与之比较:
public void DoThing (object obj)
{
if (obj is string text)
DoThingWithText(text);
if (obj is int number)
DoThingWithNumbers(number);
}
这里是否会有性能差异,如果有,差异有多大?
会有性能差异。使用类型特定的方法会更快,但是除非每秒执行数百次,否则应该不会有太大的区别。
您使方法和类更具动态性和通用性,它将在处理它的计算机上占用更多CPU资源。我想如果它在运行缓慢的计算机上运行可能会有所不同。
如DavidG所建议,您可以尝试自己运行性能测试。您可以先存储DateTime.Now,然后再运行一堆这些方法以及使用对象的类型测试进行另一项测试,然后在输出差异后使用新的DateTime.Now。