Running 2.2 I see this issue (and assume it remains with latest build as 'Search' does not show any results).
CInt() is converted by SharpDevelop 2.2 to a simple int cast, which is plan and simply wrong.
By the way, if you Google around, this notion of the equivalent of CInt() being an (int) cast in C# is proliferating. Hopefully this report will put a stop to it. And I assume I am correct but welcome rebuttals -- the argument which follows should be compelling enough.
The (int) cast operator in C#, like in C and C++, does a simple truncation Thus (int)(3.5) is 3 and (int)(4.5) is 4. But Visual Basic (and VB .NET) CInt() does rounding -- and while I have no comment on VB6's rounding behavior (TBD, don't really care), I do know for a fact that VB .NET uses banker's rounding for CInt(). Banker's rounding says that when the the fractional part of a "real" type (types like float, single, double, Single, Double, Decimal) is exactly 0.5, the integer conversion functions such as CInt() will round the number to the nearest even integer. The MSDN examples always given is 0.5 rounds to 0, 1.5 and 2.5 both round to 2. And they remind us this is sometimes called "banker's rounding" and "its purpose is to compensate for a bias that could accumulate when adding many such numbers together."
Having said all of that, the SharpDevelop convert of CInt(x) to (int)x is wrong. The correct conversion should be Convert.ToInt(x) since the C# standard states this member function (and that of all the integral convert member functions such as Convert.Int16, Convet.Int32, etc.) convert with banker's rounding whenever the argument is of type Decimal, float, or double.
This is clearly an important and nuanced math conversion that will bite and add a few more gray hairs to to (perhaps, IMHO) more than a few people.
You can easily verify this using Visual Studio :- ) as a goldenrod and taking any compiled vb and c# project/solution and invoking the Immediate window and doing:
? CInt(3.5) in the VB .NET project's immediate window -- result will be 4
? (int)(3.5) in the C# .NET project's immediate window -- result will be 3 (not same as VB)
? Convert.ToInt(3.5) in the C# .NET project's immediate window -- result will be 4 (correct)