gpt4 book ai didi

C# 隐式类型变量重新初始化

转载 作者:行者123 更新时间:2023-11-30 13:09:28 26 4
gpt4 key购买 nike

如何在 C# 中重新初始化隐式类型变量 (var)?

            var abc = new Class();
if (a == 1)
{
abc = new Class1();
}
else if (a == 2)
{
abc = new Class2();
}
else if (a == 3)
{
abc = new Class3();
}

现在我有上面的内容,但出现错误。

无法将类型“Class1”隐式转换为“Class”

最佳答案

你不能。 var 不是那样工作的。 var 意思是“看,我懒得输入这个变量的真正静态类型名称,你能帮我弄清楚吗?”这就是隐式键入的意思。

因此,在第一行,编译器决定将 abc 类型化为对 Class 的引用。然后,您稍后尝试将对 Class1 的引用分配给 abc。当然这是不可能的,除非有从 Class1Class 的转换。

强调一下,你的代码就像你写的一样

Class abc = new Class();
if (a == 1) {
abc = new Class1();
}
else if (a == 2) {
abc = new Class2();
}
else if (a == 3) {
abc = new Class3();
}

事实上,它在语义上是相同的。但现在你的错误很明显。您正在尝试将对 Class1 的引用分配给 abcabc 不能接受,除非存在从 Class1 的隐式转换Class

关于C# 隐式类型变量重新初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9130823/

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