0

嗨,我更改了我的一个程序,我为其功能添加了一个线程,但我有一个错误

这是我第一次在线程上工作。我收到一个错误*.Checked == true

static bool Check_DIR_Attributes(DirectoryInfo DirInfo)
    {
        //check Attributes
        FileAttributes Fattributes = new FileAttributes();
        Fattributes = DirInfo.Attributes;

        SearchSetAttrib = new List<FileAttributes>();

        if (chkattributes.Checked == true)
        {
            SearchSetAttrib.Clear();
            if (chkreadonly.Checked == true)
                SearchSetAttrib.Add(FileAttributes.ReadOnly);
            if (chksystem.Checked == true)
                SearchSetAttrib.Add(FileAttributes.System);
            if (chkhidden.Checked == true)
                SearchSetAttrib.Add(FileAttributes.Hidden);
            if (chkNormal.Checked == true)
                SearchSetAttrib.Add(FileAttributes.Normal);
            if (chkArchiv.Checked == true)
                SearchSetAttrib.Add(FileAttributes.Archive);

            foreach (FileAttributes FileAtt in SearchSetAttrib)
            {
                if ((Fattributes & (FileAtt)) != 0)
                    ReAttrib = true;
                else
                    return ReAttrib = false;
            }
        }
        else
            ReAttrib = true;

        return ReAttrib;
    }
4

1 回答 1

2

fieldschkreadonlychksystem不是静态的(而且它们不容易成为),因此从静态方法访问它们将不起作用。

我的建议是

  • 要么使函数非静态
  • 或者(如果由于某种原因不可能)使用非静态包装器为静态方法提供对实例的引用
于 2013-05-31T06:51:27.663 回答