public static byte[] byAlarmCmd = System.Text.Encoding.ASCII.GetBytes("RTRV-ALRMS:::RALRMS;");
public ArrayList ar = new Arraylist();private void test1()
{
ar.Add(byAlarmCmd);
bool bExist = ar.Contains(byAlarmCmd); //得到true
}
1、为何能得到true?
2、是因为变量byAlarmCmd定义成static的缘故吗?private void test2()
{
byte[] byCmd = System.Text.Encoding.ASCII.GetBytes("RTRV-ALRMS:::RALRMS;");
if (!ar.Contains()) //得到false,为什么?
ar.Add(byCmd);
}
1、多次调用test(),为何总是得到false?
2、ArrayList的内容为字节数组的Contains方法有何特殊性吗?
public ArrayList ar = new Arraylist();private void test1()
{
ar.Add(byAlarmCmd);
bool bExist = ar.Contains(byAlarmCmd); //得到true
}
1、为何能得到true?
2、是因为变量byAlarmCmd定义成static的缘故吗?private void test2()
{
byte[] byCmd = System.Text.Encoding.ASCII.GetBytes("RTRV-ALRMS:::RALRMS;");
if (!ar.Contains()) //得到false,为什么?
ar.Add(byCmd);
}
1、多次调用test(),为何总是得到false?
2、ArrayList的内容为字节数组的Contains方法有何特殊性吗?
解决方案 »
- 电脑同时插入50个优盘,如何把数据写入50个优盘里面?
- The process cannot access the file
- 真诚求助绑定的问题?(combobox,checkbox)
- 10分相求抽像类跟接口的区别,接口、抽像类可以包含方法的实现吗?
- 有没有人用过Exchange Server的API?
- 多行文本框,带滚动条,怎么能获取当前文本框可见的值(不包括看不见的)
- 我都设置了textbox1的multiline=true,可为什么在文本框里按回车时不能进入到下一行呢?
- 错误:VC软件包不可用或未注册
- 一个关于数组的算法
- 连接access数据库。。。不设数据库密码连接成功。。如果设了密码系统就提示:
- c@ winform 分页控件的问题
- 关于格式化成字符的问题
2、是因为变量byAlarmCmd定义成static的缘故吗?因为ArrayList 存储的是object数组(实现了动态效果而已,存储还是数组),byAlarmCmd这个变量是静态数组的引用,Add方法是往数组中添加了一个引用。
Contains(byAlarmCmd),你刚添加过。当然存在
{
byte[] byCmd = System.Text.Encoding.ASCII.GetBytes("RTRV-ALRMS:::RALRMS;");
if (!ar.Contains()) //得到false,为什么?
ar.Add(byCmd);
}
1、多次调用test(),为何总是得到false?
2、ArrayList的内容为字节数组的Contains方法有何特殊性吗?
你在判断语句中并没有指定ArrayList是否存在某个元素,返回的当然是False了啊2.没有特殊性
{
byte[] byCmd = System.Text.Encoding.ASCII.GetBytes("RTRV-ALRMS:::RALRMS;");//拿了一个豆子
if (!ar.Contains()) //看我拿的豆子在不在碗里
ar.Add(byCmd);//把豆子放碗里
}byte[] b = System.Text.Encoding.ASCII.GetBytes("RTRV-ALRMS:::RALRMS;");//拿了一个豆子
private void test3()
{
if (!ar.Contains(b)) //看我拿的豆子在不在碗里
ar.Add(b);//把豆子放碗里
}test2你在不停的拿新豆子
test3你只拿了一个豆子
public ArrayList ar = new Arraylist();private void test()
{
byte[] b= System.Text.Encoding.ASCII.GetBytes("RTRV-ALRMS:::RALRMS;");
if (!ar.Contains(b)) //总是得到false,为什么?
ar.Add(b);
}问题是:
1、多次调用test(),为何判断语句if总是得到false?
2、ArrayList的内容为字节数组的Contains方法有何特殊性吗?
数组都是引用类型