241 Aufrufe ohne Antwort, also schließe ich daraus, hier sind keine Anfängerfragen erwünscht, verstanden.
TL;DR
Benutz dnspy und komm mal runter, du hast keinen Anspruch auf Hilfe.
Längere Version ab hier.
Zuerst die Microsoft Dokumentation, die du selber hättest googlen können.
Checked und Unchecked (C#-Referenz)
Please Login HERE or Register HERE to see this link!
Warum benutzt man trotzdem unchecked?
"Custom GetHashCode implementations are good examples of scenarios where unchecked can be useful"
Please Login HERE or Register HERE to see this link!
Guck dir den Code beim folgenden Link an,
Please Login HERE or Register HERE to see this link!
.
public static object DecryptText(string strText, string strPwd)
{
string str = string.Empty;
strPwd = Strings.UCase(strPwd);
if ((uint)Strings.Len(strPwd) > 0U)
{
int num1 = 1;
int num2 = Strings.Len(strText);
int Start = num1;
while (Start <= num2)
{
int num3 = checked(Strings.Asc(Strings.Mid(strText, Start, 1)) - Strings.Asc(Strings.Mid(strPwd, unchecked(Start % Strings.Len(strPwd)) + 1, 1)));
str = str + Conversions.ToString(Convert.ToChar(Conversions.ToString(num3) + Conversions.ToString((int)byte.MaxValue)));
checked { ++Start; }
}
}
else
str = strText;
return (object)str;
}
Besonders die Stelle, die ähnlich zu deiner Zeile ist
int num3 = checked(Strings.Asc(Strings.Mid(strText, Start, 1)) - Strings.Asc(Strings.Mid(strPwd, unchecked(Start % Strings.Len(strPwd)) + 1, 1)));
Strings.Len(strPwd) gibt ein int32 zurück und wird nirgends gechecked im Gegensatz zu "Start". Warum es ein Problem ist, steht in den Link über unchecked.
Ich denke, dass es bei dir an Cint liegt. Diese Funktion gibt auch negative Werte zurück.
Please Login HERE or Register HERE to see this link!
MyNumber = CInt(-99.2) ' Returns -99.
Wenn num8 negativ ist gibt es eine ArgumentException,
Please Login HERE or Register HERE to see this link!
Strings.Mid(Me.mstrText, CInt(num8), 1)