gpt4 book ai didi

c# - 为什么C#在多态中不考虑函数的返回类型?

转载 作者:太空狗 更新时间:2023-10-29 19:54:50 26 4
gpt4 key购买 nike

有两个具有相同名称和相同参数集但返回类型不同的函数。为什么它不是多态性的一种形式,即方法重载?为什么编译器不允许?

最佳答案

因为 C# 被设计成可以从内部外部分析类型。想象一下,如果你有

int N() {}
float N()() {}

然后打电话

float x = N();

好的,太好了,显然我们可以说需要 float 版本。但是你说:

void M(int x) {}
void M(float x) {}

M(N());

好的,现在需要哪个版本?规则是找出 N() 的含义,然后在知道 N() 的含义后找出 M 的最佳重载 .你从内部推理到外部

基于返回类型的重载解析需要从外部内部的推理,这可能很多更难。

关于c# - 为什么C#在多态中不考虑函数的返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22582905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com