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,你完全正确!我完全误解了这是一个编译时错误,而不是运行时空引用异常。