gpt4 book ai didi

c# - 名称相似的T类型和非T类型方法的执行顺序?

转载 作者:太空宇宙 更新时间:2023-11-03 18:07:42 25 4
gpt4 key购买 nike

我有以下方法:-

protected T compare<T>(T val1, T val2)
{
return val1;
}
protected bool compare(int val1, int val2)
{
return true;
}


现在,当我调用Compare(10,20)时,输出为true。为什么叫非T型方法?

我还有一个问题是,当我们初始化变量时:-
对象0 = 10;
在这里发生装箱,但是为什么由于值类型是从引用类型继承而在这里发生装箱的呢?

最佳答案

为什么叫非T型方法?


过载分辨率为最佳匹配。将10和20转换为int显然更好(因为根本没有转换),然后再使用泛型类型。


  为什么在这里进行装箱,因为值类型是从引用类型继承的


单独具有值类型的变量将作为值存储在堆栈中。如果要将其存储为引用类型的变量,而不是将其存储在托管堆中,并且那里需要一些内存开销。一方面,您需要一个指向值存储位置的指针,并且还需要其他“内存事物”(我不会去赘述,那里的内容非常复杂)。

关于c# - 名称相似的T类型和非T类型方法的执行顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23604141/

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