More of the most used APIs defined in the BCL?
Great comments from my last post... Here is my interpretations, comments\disagreements welcome ;-)
1,System.Type.GetTypeFromHandle(System.RuntimeTypeHandle handle),15399
As was mentioned in my comments, this is from the C# keyword “typeof”
Type t = typeof (MyType) ;
2,System.Byte[,,].Set(Int32 ,Int32 ,Int32 ,Byte ),13122
This one and 5 were very interesting… Turned out to all be from the same place in WinFX where we initialize a very large matrix of character data.. here is a sampling….
/// <summary>
/// ArabicFSM, class defines the static finite states for the Arabic and Syriac unicode blocks. The class
/// is used to shape unicode text runs passed in from the Arabic Open Type Engine.
/// </summary>
internal static unsafe class ArabicFSM
{...
static byte [,,] ArabicShapeStateMachine =
{
// ARSYFSM_SHAPE_NOTSHAPED
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
{
{NCYNS, NC_IS, NC_IS, NC_IS, NC_IS, NCYNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCNNS, NCYNS, NCYNS, NCYNS, NCYNS}, // 0-ARSYCH_NONJOIN,
{INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, INVAL, NCYNS}, // 1-ARSYCH_DUALJOIN,
3,System.IDisposable.Dispose(),3488
From C#’s using statement such as:
using (StreamReader r = File.OpenText() ) {}
4,System.Resources.ResourceManager.GetObject(System.String name),2845
Many were from code that looks up an exception message text:
throw new MyException (rm.GetObject (“message”));
5,System.Byte[,].Set(Int32 ,Int32 ,Byte ),2692
Same basic idea as 2.
6,System.Text.StringBuilder.Append(System.String value),2588
No tricks here (that I found), really popular API – After all Appending is what StringBuilders are good for.
7,System.Collections.ArrayList.get_Count(),2229
8,System.Collections.IEnumerator.MoveNext(),2158
9,System.Collections.IEnumerator.get_Current(),2083
All of these are to support C# and VB’s foreach statement.. for example
foreach (Type t in Assembly.GetTypes () ) {
}
10,System.Collections.ArrayList.Add(System.Object value),2049
Like 6, no trick, just a popular API…