Kaz*_*ara 3 c# conditional-operator
我没有经历这个和这个实际上张贴在此之前.但那些是针对C++的.同样的事情也适用于C#吗?我提供的第二个链接指出条件运算符不能重载,我没有看到原因(假设同样适用于C#).有人可以提供进一步阅读的链接,或只是澄清问题?
编辑:
我不会在任何实际情况下需要重载此运算符,但我只是好奇为什么它不能重载.是否只是因为没有任何实际可能的情况,这种重载可以提供任何重要的功能?
可重载运算符列表在这里.有些你可以,有些你不能.
此页面显示如何重载可以重载的那些.
至于条件运算符(?:),不,你不能重载它.它特定于布尔人.如果超载它会是什么意思?它是if/then/else的简写.
我想你可以改写这个问题的方式是:"为什么我不能重载if/then/else"?
真正的原因,很可能,可能与语言的设计者选择不实现它的事实有关.更有可能的是,为这个操作员提供过载并不能提供足够的好处,值得进行测试和使其过载的努力.简而言之,这可能是时间/金钱的原因.对于添加到计算机语言的每个功能,这意味着时间,精力和测试,必须与功能提供的好处进行平衡.
最后,有些事情不值得实施.虽然我确信你可以从中找到一些好处,但实施成本可能超过了它的好处.
归档时间: |
|
查看次数: |
1912 次 |
最近记录: |