C# 构造函数类型推断:为什么缺少?
C# 的泛型方法很容易支持类型推断,但构造函数显然不具备此功能。 本文探讨了这一遗漏背后的原因。
基本原则
构造函数类型推断的缺乏并不是源于基本的语言限制。 从算法上来说,根据提供的参数确定正确的构造函数类型是可行的。
实际挑战
尽管理论上可行,但实际障碍阻碍了实施。 一个主要问题是重载解析的复杂性增加。 由于多个构造函数共享相同的名称但通用参数不同,编译器选择最佳匹配的任务变得更加复杂,并且可能会更慢。
另一个因素是人们认为缺乏实质性好处。虽然在特定情况下提高代码可读性是一个潜在的优势,但它并没有超过该语言的整体可用性或性能影响。 替代解决方案(例如工厂模式)可以有效地满足类型推断的需求,而无需直接语言支持。
总结
总而言之,目前实现构造函数类型推断的实际缺点超过了感知到的好处。尽管考虑了以前的 C# 版本(包括最终被放弃的 C# 6 提案),但它尚未实现足够的优先级。 然而,未来的语言迭代可能会重新审视此功能。
以上是为什么 C# 不支持构造函数中的类型推断?的详细内容。更多信息请关注PHP中文网其他相关文章!