泛型单元

文章来自:http://interactiveasp.net/blogs/spgilmore/archive/2009/12/23/using-generics-in-delphi.aspx

包含泛型的单元:Generics.Defaults, Generics.Collections, SysUtils.pas

Here are the public declarations in Generics.Defaults.pas:

Classes / Interfaces Description
IComparer<T> Implements a compare function returning less-than, greater-than or equal-to.
IEqualityComparer<T> Implements a compare function returning equal-to or not.
TComparer<T> Abstract class for implementing IComparer<T>.
TEqualityComparer<T> Abstract class for implementing IEqualityComparer<T>
TSingletonImplementation Weak-reference implementation of TInterfacedObject.  Instances are not automatically freed.
TDelegatedEqualityComparer<T> A comparer that takes a delegated comparison function and uses it to determine equality.
TDelegatedComparer<T> A comparer that takes a delegated function to do the actual comparison.
TCustomComparer<T> An abstract singleton class for comparison operations.
TStringComparer Compares strings.
Method prototypes / delegates  
TComparison<T> A delegate method prototype for less-than, greater-than, or equal-to comparisons.
TEqualityComparison<T> A delegate method prototype for equality comparisons.
THasher<T> A delegate method prototype for getting the hash value of an object or value.
Concrete Functions  
function BobJenkinsHash(const Data;
Len, InitData: Integer): Integer;
Returns a hash from the given data.
function BinaryCompare(const Left, Right: Pointer;
Size: Integer): Integer;
A method to compare binary data.  Does not match comparison prototypes, so must be used from a comparison class rather than pass as a delegated method.

 

Here are the public declarations in Generics.Collections.pas:

Classes / Interfaces Description
TArray Contains no data, but provides methods for working with arrays.  Strangely, the class is not generic and the members are.  This can easily be confused with TArray<T>, which is in System.pas, which contains data and no methods.
TEnumerator<T> Implements the iterator pattern on your data.
TEnumerable<T> Returns an enumerator, allowing your class to be used in a For..In construct.
TList<T> A generic collection or objects, records or primitives.
TQueue<T> A generic queue (first in / last out) collection.
TStack<T> A generic stack (first in / first out) collection.
TPair<TKey, TValue> A structure containing two child members of disparate types.
TDictionary<TKey, TValue> A searchable collection with lookup keys.
TObjectList<T: class> A generic collection of objects (records and primitives not allowed).
TObjectQueue<T: class> A generic queue of objects.
TObjectStack<T: class> A generic stack of objects.
TObjectDictionary<TKey, TValue> A generic collection of owned objects with lookup keys.
Enums  
TCollectionNotification Used in TCollectionNotifyEvent<>
TDictionaryOwnerships Used by TObjectDictionary<>
Method prototypes / delegates  
TCollectionNotifyEvent<T> Used by various collections to implement an observer pattern.
Concrete functions  
InCircularRange  
Type aliases  
PObject Pointer to TObject.
Exceptions  
ENotsupportedException  

 

Here are the pertinent declarations in SysUtils.pas:

Method prototypes / delegates Description
TProc A procedure with no parameters.
TProc<T> A procedure with one generic parameter.
TProc<T1, T2> A procedure with two generic parameters.
TProc<T1, T2, T3> A procedure with three generic parameters.
TProc<T1, T2, T3, T4> A procedure with four generic parameters.
TFunc<TResult> A function with no parameters and a generic return type.
TFunc<T, TResult> A function with one generic parameter and a generic return type.
TFunc<T1, T2, TResult> A function with two generic parameters and a generic return type.
TFunc<T1, T2, T3, TResult> A function with three generic parameters and a generic return type.
TFunc<T1, T2, T3, T4, TResult> A function with four generic parameters and a generic return type.
TPredicate<T> A function with one generic parameter and a boolean return type.  This is used by collections as a “filter” for elements.  Elements that are passed to a predicate function which return false are excluded from the result.
posted @ 2011-09-10 21:44  wouldguan  阅读(306)  评论(0编辑  收藏  举报