这个应该不难懂吧,我以前没有接触过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类就可以完成上面的工作。如果有什么没看懂的可以提出来 我在研究

解决方案 »

  1.   

    Pair应该是个集合吧,
    Pair.First 获取Pair集合中的第一个元素,
    Pair.First as CField将第一个元素类型转换为CField
      

  2.   

    Pair里面存放的是CField类型的对象,
    只是把这些对象去出来,并判断CField对象的名字是否存在fieldnames数组中,
    存在就设置其属性m_nReadOnly 为1,(因该是表示只读属性为真的意思吧)
      

  3.   

    Pair类 提供用于存储两个相关对象的基本实用工具类。
    它的构造函数有两个
    Pair () 
    Pair (Object, Object)pair.first的返回值是存进去的第一个对象。也就是构造函数Pair (Object, Object)中的第一个参数被返回!
    懂了吗?
      

  4.   

    Pair是你自己的类吧? 估计别人写的,所以你不知道,呵呵,右键 "go to definition"去看看源代码吧
      

  5.   

    Pair的结构是<first,second>(注:first和second都存储的是文件名,即Pair是一个文件对),程序的功能是循环Pair数组,查找文件对是否在FileNames里,如果存在则设置为只读。