Ich arbeite an einer C# DLL-Bindung an UDK, in dem Sie eine vorzeichenlose 32-Bit-Ganzzahl für Bool-Werte zurückgeben müssen - daher 0 ist falsch, alles größer ist wahr. dies der UDK erhält den Wert und wandelt sie in entweder wahr oder falsch ...C# Rückkehr UInt32 vs Int32 - C# Denken 0 und 1 sind Int32
ich einige Code tat und gefunden:
[DllExport("CheckCaps", CallingConvention = CallingConvention.StdCall)]
public static UInt32 CheckCaps()
{
return (Console.CapsLock ? 1 : 0);
}
gab mir den Fehler:
„Fehler , kann nicht implizit Typ ‚int‘ auf ‚uint‘. eine explizite Konvertierung vorhanden ist (sind Sie ein gegossenes fehlt?)“
konvertieren Während ich den Fehler verstehen, Ich habe nicht dieses Problem haben, bevor
if (File.Exists(filepath))
return 1;
else
return 0;
Von der Art und Weise tun es wie C# 's Problem mit String-Schublade gesteckt sieht, wo, wenn Sie dies haben:
int example = 5;
Console.Writeline(example);
Console.Writeline(example + "");
Der erste Console.WriteLine einen Fehler geben, weil C# wird nicht automatisch in eine Zeichenfolge umgewandelt
Ich verstehe, dass es logische Gründe für diese Fehler gibt (wie sie in diesen Situationen auftreten), aber gibt es eine Lösung für diese außer Convert.ToUInt32 (1) und Convert. ToUInt32 (0)?
(ich bin der Hoffnung, für eine Korrektur ähnlich, wie Sie für Schwimmer gehen 0.f kann, aber für nicht signierte intergers)
Bitte lernen Sie den Unterschied zwischen einer IDE und einem Compiler. Visual Studio denkt nichts, da es sich um eine Entwicklungsumgebung handelt, die mehrere verschiedene Sprachen und Compiler hostet. Das Problem ist mit C# und * nicht * Visual Studio. Die Unterscheidung ist wichtig. –
Entschuldigung, das verstehe ich. Es war ich faul ... Ich werde die Frage ändern, um –