C#2.0泛型接口调用问题 在线等!

sunchaohuang 2006-09-29 01:05:05
如何实现在在类型为K的变量上调用ComparableTo
和在类型为V的变量上调用Print和ComparableTo

static void Main(string[] arg)
{
//这里面要怎么写?
}

interface IPrintable
{
void Print();
}

interface IComparable<T>
{
void ComparableTo(T v);
}

interface IKeyProvider<T>
{
T GetKey();
}

class Dictionary<k, v>
where k : IComparable<k>
where v : IPrintable, IKeyProvider<v>
{
//可以在类型为K的变量上调用ComparableTo
//可以在类型为V的变量上调用Print和ComparableTo
}
...全文
422 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangyang887 2006-09-30
  • 打赏
  • 举报
回复
up
sunchaohuang 2006-09-29
  • 打赏
  • 举报
回复
谢谢解答我刚学2.0
wang_sh 2006-09-29
  • 打赏
  • 举报
回复
你好好看看接口和范型方面的知识
sunchaohuang 2006-09-29
  • 打赏
  • 举报
回复
有人知道吗???
sunchaohuang 2006-09-29
  • 打赏
  • 举报
回复
class Dictionary<k, v>
where k : IComparable<k>
where v : IV<v>
{
//可以在类型为K的变量上调用ComparableTo
//可以在类型为V的变量上调用Print和ComparableTo

那这里面怎么调用ComparableTo,Print,ComparableTo?
}




lwiky 2006-09-29
  • 打赏
  • 举报
回复
楼上正解

我来补充 除了引用类型 ,还可以用值类型,具体做法如楼上所示
wang_sh 2006-09-29
  • 打赏
  • 举报
回复
给你的不是现成代码
k, v
这两个需要你去定义的。
比如
class k1 : IComparable<k1>{}
class v1 : IPrintable, IKeyProvider<k1>{}

因为要实现接口,所以懒得敲了,你自己去实现,然后套模式就可以了
yeerh 2006-09-29
  • 打赏
  • 举报
回复
应该要有实现接口的类才能实例化吧.....
static void Main(string[] arg)
{
//这里面要怎么写?
Dictionary<K, V> dic = new Dictionary<K, V>();
}

interface IPrintable
{
void Print();
}

interface IComparable<T>
{
void ComparableTo(T v);
}

interface IKeyProvider<T>
{
T GetKey();
}

interface IV<V> : IPrintable, IKeyProvider<V>
{
}

class K : IComparable<K>
{
public void ComparableTo(K k)
{
}
}
class V : IV<V>
{
public void Print()
{
;
}
public V GetKey()
{
return this;
}
}
class Dictionary<k, v>
where k : IComparable<k>
where v : IV<v>
{
//可以在类型为K的变量上调用ComparableTo
//可以在类型为V的变量上调用Print和ComparableTo
}
sunchaohuang 2006-09-29
  • 打赏
  • 举报
回复
不行...............
wang_sh 2006-09-29
  • 打赏
  • 举报
回复
static void Main(string[] arg)
{
//这里面要怎么写?
Dictionary<k, v> d = new Dictionary<k, v>(new k(),new v());
d.Key.ComparableTo(new k());
d.Value.Print();
d.Value.GetKey().ComparableTo(d.Key);
}


class Dictionary<k, v>
where k : IComparable<k>
where v : IPrintable, IKeyProvider<k>
{
//可以在类型为K的变量上调用ComparableTo
//可以在类型为V的变量上调用Print和ComparableTo

private k _key;
private v _val;
public k Key
{get{return _key;}}
public v Value
{get{return _val;}}
public Dictionary(k key,v val)
{
_key = key;
_val = val;
}
}


据我的理解给出实现方式示例
sunchaohuang 2006-09-29
  • 打赏
  • 举报
回复
不知道怎么实例化Dictionary类
真相重于对错 2006-09-29
  • 打赏
  • 举报
回复
class Dictionary<k, v>
where k : IComparable<k>
where v : IPrintable, IKeyProvider<v>
{
//可以在类型为K的变量上调用ComparableTo
//可以在类型为V的变量上调用Print和ComparableTo
k k1 = ....
k1.CompareableTo();
v v1 = ....
v1.Print();
}
说清楚要干什么??


sunchaohuang 2006-09-29
  • 打赏
  • 举报
回复
如何实现在类型为K的变量上调用ComparableTo

和在类型为V的变量上调用Print和ComparableTo?
真相重于对错 2006-09-29
  • 打赏
  • 举报
回复
说清楚

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧