C# 方法错误:非静态字段、方法或属性需要对象引用

C# 方法错误:非静态字段、方法或属性需要对象引用,c#,methods,static,file-copying,C#,Methods,Static,File Copying,我试图用一个方法显示正在复制的当前文件 代码如下: public static void CopyAll(DirectoryInfo source, DirectoryInfo target) { // Check if the target directory exists, if not, create it. if (Directory.Exists(target.FullName) == false) Directory.CreateDirectory(t

我试图用一个方法显示正在复制的当前文件

代码如下:

public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
    // Check if the target directory exists, if not, create it.
    if (Directory.Exists(target.FullName) == false)
        Directory.CreateDirectory(target.FullName);

    // Copy each file into it’s new directory.
    foreach (FileInfo fi in source.GetFiles())
    {
        //Line where the error is
        lblBackupStatus.Text = "Copying " + target.FullName.ToString() + fi.Name.ToString(); 

        fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
    }

    // Copy each subdirectory using recursion.
    foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
    {
        DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name);
        CopyAll(diSourceSubDir, nextTargetSubDir);
    }
}
我得到的错误是:

非静态字段、方法或属性需要对象引用

关于从静态方法调用非静态属性,但我不确定如何修复它


感谢您的帮助,谢谢

我猜您可能在“lblBackupStatus.Text=…上遇到了错误

标签属于类实例(“对象”);静态CopyAll方法不属于(它是“静态的”)

问:CopyAll需要是静态的吗?如果不需要,看看消除“静态”是否可以解决问题


否则,请张贴/识别给出错误的行。

我猜您可能在
“lblBackupStatus.Text=…
上收到错误

标签属于类实例(“对象”);您的静态CopyAll方法没有(它是“静态的”)

问:CopyAll需要是静态的吗?如果不是,请查看消除“静态”是否可以解决问题


否则,请张贴/标识给出错误的行。

您粘贴在此处的这些行中,编译器指的是哪一行?我猜您的问题是使用
lblBackupStatus
。为什么你需要这个方法是静态的?@Claudio Redi-我想我是在你发布答案的同时键入我的答案的。我们不仅同意——看起来我们(巧合地!)使用了几乎完全相同的词:)@paulsm4:是的,哈哈。你解释得更好,答案是+1。你粘贴在这里的这些行中哪一行是编译器指的?我猜你的问题是使用
lbackupstatus
。为什么你需要这个方法是静态的?@Claudio Redi-我想我是在你发布答案的同时键入我的答案的。我们不仅同意-看起来我们(巧合地!)使用了几乎完全相同的词:)@paulsm4:是的,哈哈。你解释得更好,答案是+1。很可能是
target
,因为它在第一行被引用,或者甚至
source
@Joshua-将类实例作为参数传递给静态方法是完全可以的-无论是“target”还是“source”都不应该在这里生成编译错误。@paulsm4,你完全正确!我完全误解了这是一个编译时错误,而不是运行时空引用异常。它很可能也是
target
,因为它在第一行被引用,甚至
source
@Joshua-将类实例作为参数传递给静态方法是完全可以的-既不是“target”也不是“source”应该在这里生成编译错误。@paulsm4,你完全正确!我完全误解了这是一个编译时错误,而不是运行时空引用异常。