I'm working on a C# dll bind to UDK, in which you have to return a unsigned 32 bit integer for bool values - hence 0 is false, anything greater is true. The UDK gets the value and converts it to either true or false...

I was doing some code and found this:

```
[DllExport("CheckCaps", CallingConvention = CallingConvention.StdCall)]
    public static UInt32 CheckCaps()
    {
        return ( Console.CapsLock ? 1 : 0);
    }

```

gave me the error of:

> 
> "Error, Cannot implicitly convert type 'int' to 'uint'. An explicit
>  conversion exists (are you missing a cast?)"
> 
> 
> 

While I understand the error, I didnt have this issue before doing 

```
            if (File.Exists(filepath))
            return 1;
        else
            return 0;

```

From the way it looks like C#'s issue with string typecasting, where if you have this:

```
int example = 5;
Console.Writeline( example);
Console.Writeline( example + "");

```

The first console.writeline will give an error because C# won't autotype cast to a string

I understand that there are logical reasons behind these errors (as they occur in these situations) , but is there a fix for this other than doing Convert.ToUInt32(1) and Convert.ToUInt32(0)?

(I'm hoping for a fix akin to how you can go 0.f for floats, but for unsigned intergers)