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…