C#如果值为=
我正在从Windows mobile智能设备检索OEM编号,并试图找出如何在C#如果值为=,c#,if-statement,windows-mobile,.net-2.0,smart-device,C#,If Statement,Windows Mobile,.net 2.0,Smart Device,我正在从Windows mobile智能设备检索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;
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();
好吧,在你的“主要”中做一些类似的事情:
如果我理解你的问题,你应该这样做:
oem someOem = new oem();
if (oem.getOEMVersion() == "86.09.0009") {
// ok
} else {
// fail
}
if语句需要bool值。在您的情况下,您应该将您需要的值与您获得的值进行比较
if(status == 86.09.0009)//...
注意双精度“==”是一个检查相等性的运算符。将其与执行赋值的单个“=”进行对比
还要注意,
int
不允许小数。考虑到这个数字有两个小数,我认为您需要将其作为一个字符串。我不确定您的意思,但如果我理解您的问题,您希望在ifstatement中使用GetOEMVersion
方法的结果
string OEMVersion = getOEMVersion();
if(OEMVersion == "86.09.0009")
{
// Do something
}
else
{
// fail
}
您缺少:
[DllImport("CAD.dll")]
public static extern int CAD_GetOemBuildNumber(ref uint lpdwBuild);
int build = CAD_GetOemBuildNumber(ref nBuild);
获取构建。抱歉,但你的问题是什么?仅供参考:你的代码从不设置
nBuild
,因此sBuild
将始终具有值0000。+1为了解释if语句期望什么以及=
如何工作,我非常接近。别忘了投票给那些帮助你的人,并将其标记为解决方案。我们提供帮助的唯一动机是获得这些分数。为了避免代码中的“幻数”,最好定义类似于public const string OEM_REQUIRED=“86.09.0008”代码>位于类列表的最顶端。这使得在以后修改代码时,这个数字的用途非常明显。
[DllImport("CAD.dll")]
public static extern int CAD_GetOemBuildNumber(ref uint lpdwBuild);
int build = CAD_GetOemBuildNumber(ref nBuild);