谁能告诉我 泛型类 泛型方法 泛型变量 是什么意思

类名的后面加上尖括号方法的后面加上尖括号变量后面加上尖括号分别是什么意思啊... 类名的后面加上尖括号 方法的后面加上尖括号 变量后面加上尖括号 分别是什么意思啊 展开
 我来答
例子你好
2011-12-18 · TA获得超过732个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:36.6万
展开全部
什么是泛型,如何使用和定义泛型?
泛型是具有占位符(类型参数)的类、结构、接口和方法,这些占位符是类、结构、接口和方法所存储或使用的一个或多个类型的占位符。泛型集合类可以将类型参数用作它所存储的对象的类型的占位符;类型参数作为其字段的类型和其方法的参数类型出现。泛型方法可以将其类型参数用作其返回值的类型或者其形参的类型之一。下面的代码阐释一个简单的泛型类定义。

  Visual Basic 代码  
 Public Class Generic(Of T)  
 Public Field As T  
 End Class  
 C# 代码  
 public class Generic<T>  
 {   public T Field;   }  
 C++ 代码   
generic<typename T> public ref class Generic
  {   public:   T Field;   };  

 在创建泛型类的实例时,会指定实际类型来替换类型参数。这会建立一个新的泛型类,称为构造泛型类,选定的类型将替换所有出现的类型参数。最后得到按照您选择的类型定制的类型安全的类,如下面的代码所示。
  Visual Basic 代码  
 Dim g As New Generic(Of String)
  g.Field = "A string"  
 C# 代码  
 Generic<string> g = new Generic<string>();
  g.Field = "A string";  
 C++ 代码  
 Generic<String^>^ g = gcnew Generic<String^>();  
 g->Field = "A string";  

 下面的术语用于讨论 .NET Framework 中的泛型:  
 “泛型类型定义”是用作模板的类、结构或接口声明,其中具有该类、结构或接口声明可以包含或使用的类型的占位符。例如,Dictionary 类可以包含两种类型:键和值。因为它只是一个模板,您不能创建作为泛型类型定义的类、结构或接口的实例。  
 “泛型类型参数”或称“类型参数”是泛型类型或方法定义中的占位符。Dictionary 泛型类型具有两个类型参数:TKey 和 TValue,分别表示其键和值的类型。
  “构造泛型类型”或称“构造类型”是为泛型类型定义的泛型类型参数指定类型得到的结果。  
 “泛型类型参数”是替换泛型类型参数的任何类型。  
 一般术语“泛型类型”包括构造类型和泛型类型定义。  
 “约束”是加在泛型类型参数上的限制。例如,可以将类型参数限制为实现 IComparer 泛型接口的类型以确保可以对该类型的实例进行排序。还可以将类型参数限制为具有特定基类的类型、具有默认构造函数的类型或是引用类型或值类型。泛型类型的用户不能替换不满足这些约束的类型参数。   
“泛型方法定义”是具有两个参数列表的方法:一个泛型类型参数列表和一个形参列表。类型参数可以作为返回类型或形参的类型出现,如下面的代码所示。
  Visual Basic 代码  
 Function Generic(Of T)(ByVal arg As T) As T  
 Dim temp As T = arg  
 ...  
 End Function  
 C# 代码  
 T Generic<T>(T arg) { T temp = arg; ...}   
C++ 代码  
 generic<typename T> T Generic(T arg) { T temp = arg; ...};  

 泛型方法可以出现在泛型或非泛型类型上。需要注意的是,并不是只要方法属于泛型类型,或者甚至是方法的形参的类型是封闭类型的泛型参数,就可以说方法是泛型方法。只有当方法具有它自己的类型参数列表时,才能称其为泛型方法。在下面的代码中,只有方法 G 是泛型方法。   Visual Basic 代码  
 Class A  
 Function G(Of T)(ByVal arg As T) As T
  ..
  End Function   
End Class
  Class Generic(Of T)
  Function M(ByVal arg As T) As T
  ...  
 End Function
  End Class  
 C# 代码   
class A  
 {   T G<T>(T arg) {...}   }  
 class Generic<T>  
 {   T M(T arg) {...}   }  
 C++ 代码  
 ref class A  
 {   generic<T> T G(T arg) {...};   };
  generic<typename T> ref class Generic  
 {   T M(T arg) {...};   };  

 Visual C++、C# 和 Visual Basic 都提供了对定义和使用泛型的完全支持。有关更多信息,请参见 Visual Basic 中的泛型类型、泛型介绍(C# 编程指南)和 Overview of Generics in C++。  
 嵌套类型和泛型   嵌套于泛型类型中的类型依赖于封闭泛型类型的类型参数,公共语言运行库将这样的嵌套类型视为泛型,即使它们没有自己的泛型类型参数。在创建嵌套类型的实例时,需要为所有封闭泛型类型指定类型参数。
百度网友061c77f
2011-12-19 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:124万
展开全部
类后面加个尖括号
表示 你声明的变量A 是个存储某一类型的容器
如 list<string> array=new list<string>()
array 就是个容器,装有很多个string字符串类型的变量
就像一个篮子里面有很多个苹果
一个篮子只能装一种水果,可以按照水果的大小啊,颜色红晕程度排序
向篮子里加个苹果,拿走一个苹果,查找某个苹果。
array.add("1");
array.remove(0);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
373566783
2011-12-21
知道答主
回答量:12
采纳率:0%
帮助的人:8.9万
展开全部
没有泛型变量这一说吧,泛型类、泛型方法就是在定义的时候里面使用一串字符代表类型,这串字符就代表着类型就像 int ,char,string.... 一样使用,再在使用泛型类、方法时就要传个具体的类型,说明这串字符具体代表什么类型,就传参数一样,下面是例子:
public void Mothd<T>(T a,int b)
{ T max;
}
调用的时候传个类型下去就可以了 Mothd<int>(1,2);
类也是一样的形式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宇阳1992
2011-12-21 · TA获得超过148个赞
知道小有建树答主
回答量:307
采纳率:100%
帮助的人:139万
展开全部
在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象.
泛型集合类可以将类型参数用作它所存储的对象的类型的占位符;类型参数作为其字段的类型及其方法的参数类型出现。泛型方法可以将其类型参数用作其返回值的类型或者其某个形参的类型。
class Gen<T> {
   private T ob; //定义泛型成员变量
  public Gen(T ob)
{   
this.ob = ob;
   }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzh3452
2011-12-31 · TA获得超过1044个赞
知道小有建树答主
回答量:1168
采纳率:100%
帮助的人:861万
展开全部
泛型就是不确定的类型,多用来表示一类具有共同处理方式的类型。如泛型方法可以定义一个泛型的入参和一个泛型的返回值。你可以传入任何该方法可以处理的类型的变量作为入参,并取得对应的类型的返回值,尤其是对于共通性很强的类型,他们都包含该方法所要用到的属性,而且用法一致,所以甚至在不知道类型的前提下,也可以对数据进行处理,这使得我们可以避免因为入参类型不同而反复重载一个方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式