Merge Sort optimization
Since you're asking for a readability review, here's my input:


Way too many comments. Comments should say why, not what - the code itself should describe what it's doing.
Use XML comments to describe methods. // regular comments only work if you're looking at the method's code. When you're using the code, XML comments are picked up by Visual Studio and you get tooltips to help you correctly use the method. For example:

/// &lt;summary&gt;
/// A recursive split merge method. 
/// &lt;/summary&gt;
/// &lt;param name="A"&gt;The array to be sorted.&lt;/param&gt;
/// &lt;param name="iBegin"&gt;The lower bound index for the sub-array to be sorted.&lt;/param&gt;
/// &lt;param name="iEnd"&gt;The upper bound index for the sub-array to be sorted.&lt;/param&gt;
private static void SplitMerge(int[] A, int iBegin, int iEnd)

Avoid Hungarian Notation. Prefixing i for int types is useless in .net, and hinders readability. iBegin and iEnd should simply be begin and end to be correct, startIndex and endIndex to be meaningful.
Use camelCase for parameters and locals. Parameter A should be a... but that's an awfully bad name. unsortedArray, or simply unsorted, would be much more descriptive.
Avoid snake_case. C# naming conventions don't encourage the use of an underscore (_) in the middle of an identifier's name. Use camelCase for parameters and locals, and PascalCase for types and public members (actually, exposed is more accurate, since internal and protected members should also be PascalCase).
Avoid Java-style curly braces. Not to start any flamewars, but C# conventions put the opening brace { on the next line.
Method names should start with a verb. Standard() isn't a good method name. Since it's a member of a class named MergeSort, Sort() would probably be best, and should take the array in as a parameter to be any useful...