"A type can name itself as the concrete type when closing a type argument"是什么意思?



c#in Cutshell

关闭类型时类型可以将自己称为混凝土类型 参数

public interface IEquatable<T> { bool Equals (T obj); }
public class Balloon : IEquatable<Balloon>
{
  public string Color { get; set; }
  public int CC { get; set; }
  public bool Equals (Balloon b)
  {
    if (b == null) return false;
    return b.Color == Color && b.CC == CC;
  }
}

以下也是合法的:

class Foo<T> where T : IComparable<T> { ... }
class Bar<T> where T : Bar<T> { ... }

关闭类型参数时"一种类型可以将自己称为具体类型"的意思是什么?您能显示示例中的位置吗?

"混凝土类型"one_answers"关闭类型参数"是什么意思?

在示例中,没有通用类型的实例化,那么"类型参数"one_answers"混凝土类型"在哪里?

谢谢。

Balloon是具体类型。您可以使用它来创建Balloon类型对象的实例:

var balloon = new Balloon 
{ 
    CC = 1;
    Color = "Blue" 
};

另一方面,IEquatable<T>是一个通用接口。每当类型实现此接口时,T都会被这种类型替换。

因此,如果您要使用自定义类型Balloon来实现此接口,则只需首先声明此类将其实现如下:

public class Balloon : IEquatable<Balloon>

和班级内部您必须实现方法Equals

请注意,由于此方法的签名为以下:

bool Equals (T obj); 

您必须对此进行更改:

bool Equals(Balloon obj)

从现在开始,Balloon是您的混凝土类型。

相关内容

最新更新