这个应该不难懂吧,我以前没有接触过pair这个类,刚刚看了看MSDN,大致知道上面一段讲的是什么意思了
foreach (string field in fieldnames) //这个你应该懂吧
{
for (int i = 0; i < arr.Count; i++)
{
Pair pair = arr[i] as Pair; //这里就是构造一个pair实例,估计arr[i]中有两个object对象
CField f = pair.First as CField; //pair.First是pair的共有成员,返回第一个object对象
if (f != null && f.GetFieldName() == field) //这里就是判断f这个文件的文件名是否与fieldnames中的相同
f.m_nReadOnly = 1; f = pair.Second as CField;
if (f != null && f.GetFieldName() == field) //这里同上
f.m_nReadOnly = 1;
}
}
至于这段程序的意义我就想不通了,因为它大可以不用pair类就可以完成上面的工作。如果有什么没看懂的可以提出来 我在研究
foreach (string field in fieldnames) //这个你应该懂吧
{
for (int i = 0; i < arr.Count; i++)
{
Pair pair = arr[i] as Pair; //这里就是构造一个pair实例,估计arr[i]中有两个object对象
CField f = pair.First as CField; //pair.First是pair的共有成员,返回第一个object对象
if (f != null && f.GetFieldName() == field) //这里就是判断f这个文件的文件名是否与fieldnames中的相同
f.m_nReadOnly = 1; f = pair.Second as CField;
if (f != null && f.GetFieldName() == field) //这里同上
f.m_nReadOnly = 1;
}
}
至于这段程序的意义我就想不通了,因为它大可以不用pair类就可以完成上面的工作。如果有什么没看懂的可以提出来 我在研究
Pair.First 获取Pair集合中的第一个元素,
Pair.First as CField将第一个元素类型转换为CField
只是把这些对象去出来,并判断CField对象的名字是否存在fieldnames数组中,
存在就设置其属性m_nReadOnly 为1,(因该是表示只读属性为真的意思吧)
它的构造函数有两个
Pair ()
Pair (Object, Object)pair.first的返回值是存进去的第一个对象。也就是构造函数Pair (Object, Object)中的第一个参数被返回!
懂了吗?