Pracuję nad połączeniem C# dll z UDK, w którym trzeba zwrócić niepodpisaną 32-bitową liczbę całkowitą dla wartości bool - stąd 0 jest fałszywe, wszystko większe jest prawdziwy. UDK pobiera wartość i konwertuje go na prawdziwe lub fałszywe ...C# zwracające UInt32 vs Int32 - C# myślenie 0 i 1 to Int32
robiłem jakiś kod i znalazłem to:
[DllExport("CheckCaps", CallingConvention = CallingConvention.StdCall)]
public static UInt32 CheckCaps()
{
return (Console.CapsLock ? 1 : 0);
}
dał mi błąd:
„Error nie można niejawnie przekonwertować typu „int” do „uint”. wyraźne konwersji istnieje (czy brakuje obsady?)”
Choć rozumiem błąd, zrobił mam ten problem przed wykonaniem
if (File.Exists(filepath))
return 1;
else
return 0;
Od drogi wygląda jak numerze C# 's ze stringami rzutowania, gdzie jeśli masz to:
int example = 5;
Console.Writeline(example);
Console.Writeline(example + "");
Pierwszy Console.WriteLine daje błąd, ponieważ C# nie będzie autotypować rzutowania na ciąg znaków
Rozumiem, że istnieją logiczne przyczyny tych błędów (ponieważ występują w tych sytuacjach), ale czy istnieje poprawka dla tego innego niż wykonanie Convert.ToUInt32 (1) i Konwertuj. ToUInt32 (0)?
(mam nadzieję na poprawki zbliżony do tego, jak można przejść 0.f dla pływaków, ale dla niepodpisanych intergers)
Proszę zapoznać się z różnicą między IDE i kompilatorem. Visual Studio nic nie myśli, ponieważ jest to po prostu środowisko programistyczne, które obsługuje kilka różnych języków i kompilatorów. Problem dotyczy programu C# i * nie * Visual Studio. Rozróżnienie jest ważne. –
Przepraszam, tak, rozumiem to. To ja byłem leniwy ... Zmienię to pytanie, by pasowało do –