我正在制作一个示例程序,供稍后参加C#独立学习的学生使用。我以为我明白<T>
,但显然我缺乏一些神奇的秘密,使我可以充分利用它。不能将类型'char'隐式转换为类型Test <char>,为什么?
当我尝试做一个变量,它工作正常:
static Test<char> c = new Test<char>('n');
正如你可以看到它的实例化和一切。
现在,当我去把它分配给通过Console.Read()
不同的值,那么它给我的错误: 无法隐式转换类型'char'
到'ConsoleApplication1.Test<char>'
我曾经尝试都:
c = (char)Console.Read();
和:
c = Convert.ToChar(Console.Read());
甚至:(我知道这样做是愚蠢的,但我变得很烦,想看看它是否会工作)
c = (char)Convert.ToChar(Console.Read());
所以,我彻底困惑如何继续。请帮助。
编辑: 当前在构造类Test
:
public Test() { }//empty constructor public Test(T obj) { variable = obj; }//filled constructor
那么在第一种情况下,你正在调用构造函数。在其他情况下,你不是。是否有任何理由不使用'c = new Test((char)Console.Read())'? –
2013-04-10 15:45:38
我不想在这一点上做一个新的变量,所以为什么我会再次调用构造函数? – joesumbody122 2013-04-10 15:53:00
因为您正在尝试创建一个新的*实例* Test'Test'。我认为你对变量和构造函数之间的关系感到困惑。 –
2013-04-10 15:58:26