0

我正在从 Windows 移动智能设备检索 OEM 编号,并试图弄清楚如何在if语句中使用返回值。

下面是我用来返回值的代码。我想确保 OEM 编号始终为 86.09.0008,如果不是,我希望它告诉我。

class oem
{
    const string OEM_VERSION = "OEMVersion";
    private const int SPI_GETOEMINFO = 258;
    private const int MAX_OEM_NAME_LENGTH = 128;
    private const int WCHAR_SIZE = 2;

    [DllImport("coreDLL.dll")]
    public static extern int SystemParametersInfo(int uiAction, int uiParam, string pBuf, int fWinIni);

    [DllImport("CAD.dll")]
    public static extern int CAD_GetOemVersionNumber(ref System.UInt16 lpwMajor, ref System.UInt16 lpwMinor);

    public string getOEMVersion()
    {
        System.UInt16 nMajor = 0;
        System.UInt16 nMinor = 0;
        uint nBuild = 0;

        int status = CAD_GetOemVersionNumber(ref nMajor, ref nMinor);

        if (((System.Convert.ToBoolean(status))))
        {
            string sMajor = String.Format("{0:00}", nMajor); //in 2-digits
            string sMinor = String.Format("{0:00}", nMinor); //in 2-digits
            string sBuild = String.Format("{0:0000}", nBuild); //in 4-digits

            return (sMajor + "." + sMinor + "." + sBuild);
        }
        else // failed
        {
            return ("00.00.0000");
        }

我从我的主要表单中调用它,如下所示:

label1.Text = oemver.getOEMVersion();
4

5 回答 5

2

if 语句需要一个布尔值。在您的情况下,您应该将所需的值与获得的值进行比较

if(status == 86.09.0009)//...

请注意双 '==' 这是一个检查相等性的运算符。将此与执行分配的单个“=”进行对比。

另请注意,int不允许小数。考虑到这个数字有两位小数,我相信你需要把它作为一个字符串。

于 2013-03-20T13:09:01.827 回答
0

好吧,在你的“主要”中做这样的事情:

string myString = getOEMVersion();
if(myString == "86.09.0009")
{//Whatever you're willing to do
}
于 2013-03-20T13:07:09.237 回答
0

如果我理解你的问题,你应该这样做:

oem someOem = new oem();
if (oem.getOEMVersion() == "86.09.0009") {
     // ok
} else {
     // fail
}
于 2013-03-20T13:07:36.957 回答
0

我不确定你的意思,但如果我理解你的问题,你想在 if 语句中使用该GetOEMVersion方法的结果。

string OEMVersion = getOEMVersion();
if(OEMVersion == "86.09.0009")
{
   // Do something
}
else
{
   // fail
}
于 2013-03-20T13:12:25.440 回答
0

你失踪了:

[DllImport("CAD.dll")]
public static extern int CAD_GetOemBuildNumber(ref uint lpdwBuild);


int build = CAD_GetOemBuildNumber(ref nBuild);

得到构建。

于 2013-05-16T22:14:06.167 回答