【发布时间】:2013-04-02 13:33:57
【问题描述】:
我正在为以后学习 C# 进行独立学习的学生制作一个示例程序。我以为我理解了<T>,但显然我缺少一些能让我充分利用它的神奇秘密。
当我尝试创建一个变量时,它工作正常:
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>((char) Console.Read())? -
那时我并不想创建一个新变量,那我为什么要再次调用构造函数呢?
-
因为您正在尝试创建
Test<T>的新实例。我认为您对变量和构造函数之间的关系感到困惑。 -
由于这是一个供其他学生将来使用的演示程序,我将尝试在不同的场合同时使用这两种程序。注意:我在这个过程中学习,所以我觉得这很有趣。 =D
-
当然,您肯定需要同时使用构造函数和变量。但是您对“我当时并不想创建一个新变量,所以我为什么要再次调用构造函数?”的评论。表明您从根本上误解了调用构造函数的目的。
标签: c# char type-conversion console-application