返回值为boolean的方法

时间:2015-06-24 06:43:42

标签: c# interop user32

我有以下代码,其中ShellExecuteEx在执行时返回布尔值true或false。我通过将其转换为字符串将其分配给类级变量。

strShellCallStatus = ShellExecuteEx(ref info).ToString();

[DllImport("shell32.dll", CharSet = CharSet.Auto)]
static extern bool ShellExecuteEx(ref SHELLEXECUTEINFO lpExecInfo);

public static void exev()
{
    SHELLEXECUTEINFO info = new SHELLEXECUTEINFO();
    info.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(info);
    info.lpVerb = "open";
    info.lpFile = "c:\\windows\\notepad.exe";
    info.nShow = 5;
    info.fMask = 0x440;
    info.hwnd = IntPtr.Zero;
    strShellCallStatus = ShellExecuteEx(ref info).ToString();
}

我是否应该关注ShellExecuteEx返回null值?如果是这样,我想使用以下声明:

strShellCallStatus = Convert.ToString(ShellExecuteEx(ref info));

1 个答案:

答案 0 :(得分:2)

只要ShellExecuteEx签名不是bool? ShellExecuteEx(),就不应该害怕它会返回null,因为bool是一个带有默认值{{}的值类型1}}。

简单 - 签名为false的方法无法返回bool ShellExecuteEx(),因为它甚至无法编译。