菜鸟求助

wpamn_c 2012-09-20 05:21:54
if (Public.RmuOpenAndConnect(ref phCom, Cb1.Text, pflag))
{}

怎么执行的if语句?或者说if()里面的内容满足什么样的条件?if语句是判断()里面的内容位true 和 false?里面的方法呢?方法内满足什么条件?
再请教个问题:如果定义了一个数组,
byte[] uFreMode = new byte[1];
byte[] uFreBase = new byte[1];
byte[] uCN = new byte[1];
byte[] uSPC = new byte[1];
byte[] uFreHop = new byte[1];
byte[] uBF = new byte[2];
string sBF, sCN, sSPC;

if (Public.RmuGetFrequency(phCom, uFreMode, uFreBase, uBF, uCN, uSPC, uFreHop, pflag))
{

if (uFreMode[0] < 4) 、[color=#FF0000]//此处引用uFreMode[0]的值为多少?怎么的来的?
uFreMode和uFreMode[0] 有什么区别?

{[/color]
CbFre.SelectedIndex = uFreMode[0];
Tbar.Enabled = false;
Cb50.Enabled = false;
Cb125.Enabled = false;
TbFreCN.Enabled = false;
CbSpc.Enabled = false;
}
...全文
127 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
devmiao 2012-09-20
  • 打赏
  • 举报
回复
没错,是定义了两个新数组,并且元素是byte类型的。
byte表示一个字节,相当于8个二进制位。
wpamn_c 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

引用 10 楼 的回复:

它怎么实现的不重要,你只要知道它需要什么参数,执行什么功能,返回什么东西就可以了。

好比你不需要知道电视机的原理,只要插上电源打开用就行了。

呵、好吧、
[/Quote]
只是新手,好多事可能脑子转不过来,经这么一说,才能明白。谢谢了
byte[] bSerial = new byte[6];
byte[] bVersion = new byte[1];
这两句话怎么解释?是定义了两个新的数组吗?
这里用了byte 把我用晕了、给个详解。
wpamn_c 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

它怎么实现的不重要,你只要知道它需要什么参数,执行什么功能,返回什么东西就可以了。

好比你不需要知道电视机的原理,只要插上电源打开用就行了。
[/Quote]
呵、好吧、
devmiao 2012-09-20
  • 打赏
  • 举报
回复
它怎么实现的不重要,你只要知道它需要什么参数,执行什么功能,返回什么东西就可以了。

好比你不需要知道电视机的原理,只要插上电源打开用就行了。
wpamn_c 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

这个函数的实现是在dll里面的,没法知道它做了什么。
另外这个函数和if没有关系,它的返回值才和if有关系。也就是说,无论任何情况下,这个函数都会执行。
你的程序等价:
C# code
bool result = Public.RmuOpenAndConnect(ref phCom, Cb1.Text, pflag);
if (result == true)
{
...
}
……
[/Quote]
那RmuOpenAndConnect()方法呢?这个怎么实现?
devmiao 2012-09-20
  • 打赏
  • 举报
回复
uFreMode[0]的值可能是在这个函数内部被赋上的。但是这个函数被编译在dll中了,没有它的源代码。
devmiao 2012-09-20
  • 打赏
  • 举报
回复
这个函数的实现是在dll里面的,没法知道它做了什么。
另外这个函数和if没有关系,它的返回值才和if有关系。也就是说,无论任何情况下,这个函数都会执行。
你的程序等价:
bool result = Public.RmuOpenAndConnect(ref phCom, Cb1.Text, pflag);
if (result == true)
{
...
}

wpamn_c 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

你贴出来的代码没看到赋值的地方,,
是不是贴掉了
[/Quote]
我再看看、
熙风 2012-09-20
  • 打赏
  • 举报
回复
你贴出来的代码没看到赋值的地方,,
是不是贴掉了
wpamn_c 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

C# code
if(判断条件是否为ture)
{
如果为ture,进来
}

uFreMode[0]的值小于4的都会进来
uFreMode 是个byte类型的数组,
uFreMode[0] byte数组里面的第一个值
[/Quote]

那再请教下,uFreMode[0]的值怎么求出来的?我从程序中找了半天,都没看到有赋初值的动作,到底是哪里求出来的值?
wpamn_c 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

首先执行if括号中的表达式,然后再根据表达式的值决定执行哪个块的代码。

这里要看RmuGetFrequency怎么实现的了。
[/Quote]

RmuGetFrequency的定义是 [System.Runtime.InteropServices.DllImportAttribute(API_Path)] //get fre
public static extern bool RmuGetFrequency(IntPtr hCom, byte[] fremode, byte[] frebase, byte[] basefre, byte[] channnum, byte[] channspc, byte[] frehop, byte flagCrc);

麻烦能讲详细点吗、我新手;
if (Public.RmuOpenAndConnect(ref phCom, Cb1.Text, pflag))
{}

怎么执行的if语句?或者说if()里面的内容满足什么样的条件?if语句是判断()里面的内容位true 和 false?里面的方法呢?方法内满足什么条件?
熙风 2012-09-20
  • 打赏
  • 举报
回复
if(判断条件是否为ture)
{
如果为ture,进来
}

uFreMode[0]的值小于4的都会进来
uFreMode 是个byte类型的数组,
uFreMode[0] byte数组里面的第一个值
devmiao 2012-09-20
  • 打赏
  • 举报
回复
首先执行if括号中的表达式,然后再根据表达式的值决定执行哪个块的代码。

这里要看RmuGetFrequency怎么实现的了。

109,901

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧