由于泛型函数xx预先不知道T是什么类型的对象,所以调用xx时,当T为string对象时,像这样的句子“y=a.Length”就不能在泛型函数体中使用,有什么通用办法解决吗?请看代码: int xx<T>(T a) { int y; y=a.Length; return y; } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用泛型约束 int xx <T>(T a) where T: A { int y; y=a.GetLength(); return y; }定义一个所有T可能类型的共同基类A:public class A{ public virtual int GetLength();} 不加约束就是object,你说object有Length这个属性吗?如果你知道T是string,为什么还用泛型?泛型有5大约束:值类型约束引用类型约束基类约束接口约束构造函数约束你这个的问题是无法解决的,因为没有一个类或接口专门提供Length这个属性,而string是个封闭类,你无法继承它 lz可以直接用vb.net,option strict = off 的情况下编译Function xx(ByVal a) As Integer Dim i As Integer i = a.Length Return iEnd Function或者lz熟悉反射的话,在c#里面直接用反射 WPF手动触发MouseUp 利用ADO.NET将SQL SERVER数据导出到ACCESS发生“无法初始化链接服务器 \"(null)\”的错误 XP→windows 7 浏览器缓存的的原理 求助大家帮忙!请大家看看,谢谢! java里的Structs框架,有没有.net版的?谢谢! 求WinForm中C#写的管理软件 有没有办法VS2003中设置成E文输入为默认输入法呀 combobox的问题 怎么样在网页中搜索Email c# 如何 实现 浮动窗口 C#中怎样用代码调用事务????
where T: A
{
int y;
y=a.GetLength();
return y;
}定义一个所有T可能类型的共同基类A:public class A
{
public virtual int GetLength();
}
如果你知道T是string,为什么还用泛型?
泛型有5大约束:
值类型约束
引用类型约束
基类约束
接口约束
构造函数约束你这个的问题是无法解决的,因为没有一个类或接口专门提供Length这个属性,而string是个封闭类,你无法继承它
Function xx(ByVal a) As Integer
Dim i As Integer
i = a.Length
Return i
End Function
或者lz熟悉反射的话,在c#里面直接用反射