T 元素的错误语法 != default(T)
error syntax with T element != default(T)
我的问题出在这段代码上:
class LinkedList<T>
{
Node<T> first;
public LinkedList(T element=default(T)) {
if (element != default(T)) **<---- problem here**
first = new Node<T>(element);
}
}
我正在尝试创建一个空的 LinkedList,以防没有任何内容作为参数传递,而在另一种情况下,创建一个 linkedList,其中参数的内容将是第一个节点的内容。
这个问题的一些解决方案?
非常感谢,此致
使用两个构造函数:
public LinkedList() {
}
public LinkedList(T element=default(T)) {
first = new Node<T>(element);
}
问题已解决:-)
如果你真的想做一个比较(我不建议这样做,但 PC 是你的):
public LinkedList(T element=default(T)) {
var comparer = EqualityComparer<T>.Default;
if (!comparer.Equals(element, default(T)))
first = new Node<T>(element);
}
举例说明为什么它是错误的...0 (zero) 是一个漂亮的数字...很圆...没有丑角,有点像 8
:-) ,据说阿拉伯人 "invented" 它,它是现代数学的核心。现在... default(int) == 0
。伤心。
只需使用 2 个构造函数:
class LinkedList<T>
{
Node<T> first;
public LinkedList(T element)
{
first = new Node<T>(element);
}
public LinkedList()
{
}
}
我的问题出在这段代码上:
class LinkedList<T>
{
Node<T> first;
public LinkedList(T element=default(T)) {
if (element != default(T)) **<---- problem here**
first = new Node<T>(element);
}
}
我正在尝试创建一个空的 LinkedList,以防没有任何内容作为参数传递,而在另一种情况下,创建一个 linkedList,其中参数的内容将是第一个节点的内容。
这个问题的一些解决方案?
非常感谢,此致
使用两个构造函数:
public LinkedList() {
}
public LinkedList(T element=default(T)) {
first = new Node<T>(element);
}
问题已解决:-)
如果你真的想做一个比较(我不建议这样做,但 PC 是你的):
public LinkedList(T element=default(T)) {
var comparer = EqualityComparer<T>.Default;
if (!comparer.Equals(element, default(T)))
first = new Node<T>(element);
}
举例说明为什么它是错误的...0 (zero) 是一个漂亮的数字...很圆...没有丑角,有点像 8
:-) ,据说阿拉伯人 "invented" 它,它是现代数学的核心。现在... default(int) == 0
。伤心。
只需使用 2 个构造函数:
class LinkedList<T>
{
Node<T> first;
public LinkedList(T element)
{
first = new Node<T>(element);
}
public LinkedList()
{
}
}