我正在製作一個示例程序,供稍後參加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