我有两个类如下:
class Bear : IPersonality
{
...
}
class Friend<T> where T : IPersonality
{
T friend;
public Friend(T animal)
{
friend = animal;
}
...
public static implicit operator Friend<T>(Bear v)
{
throw new NotImplementedException();
}
}
如何使用隐式运算符来创建这样的 Friend 类的实例?
Friend<Bear> bear = new Bear("Pooh", 5);
如果您T
对任何动物使用泛型,请继续使用implicit
:
class Friend<T> where T : IPersonality {
...
public static implicit operator Friend<T>(T animal) =>
animal == null ? null : new Friend<T>(animal);
}
如果只能Bear
是一个隐式朋友(但不是,比如说,Rabbit
),将代码移动到Bear
:
class Bear : IPersonality {
...
public static implicit operator Friend<Bear>(Bear bear) =>
bear == null ? null : new Friend<Bear>(bear);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句