我想使用我在类范围中下载的依赖项。该代码有效:
using System;
using System.IO;
using System.Collections;
namespace PrintFilesToConsole
{
class Preprogram
{
public void Main2()
{
IEnumerable myDirs = System.IO.Directory.EnumerateDirectories("/Users/Eunice/Desktop");
Console.WriteLine("Hello World!");
}
}
class Program
{
static void Main(string[] args)
{
Preprogram preprogram = new Preprogram();
preprogram.Main2();
}
}
}
但是当我写
System.IO.Directory.EnumerateDirectories
("/Users/Eunice/Desktop");
函数
之外Main2
,进入类的范围
Preprogram
,计算机提示该功能在当前上下文中不存在
除非我将返回值分配给变量,如
IEnumerable myDirs = System.IO.Directory.EnumerateDirectories("/Users/Eunice/Desktop");
enter code here
答案 0 :(得分:0)
让我们简化您的示例以说明问题所在。
我们有一个类A
,其中包含方法DoSomething
。
public class A
{
public int DoSomething()
{
return 42;
}
}
可以说它还包含方法MakeStuff
,该方法调用DoStuff
方法:
public class A
{
public int DoSomething()
{
return 42;
}
public void MakeStuff()
{
int x = this.DoSomething();
// We called the method DoSomething, which returns 42, and now x equals 42.
}
}
我们在MakeStuff
中所做的是调用方法,并将返回值分配给了局部变量。>
我们还可以在类A
中放置一个字段(或属性):
public class A
{
private int y;
...
}
,我们甚至可以为该字段分配默认值:
public class A
{
private int y = 10;
...
}
但该值不必硬编码:我们也可以使用函数的返回值,就像我们在MakeStuff
中所做的一样将返回值分配给局部变量时的方法:
public class A
{
private int y = this.DoSomething();
// Now y equals 42, because DoSomething() returns 42.
...
}
但如果我们放弃返回值,例如,我们不能在方法之外调用函数。我们不能这样做:
public class A
{
this.DoSomething();
// This will not compile!
}
我希望这个简单的例子能说明您为什么得到所描述的错误。我试图使它尽可能简单-但是,如果您不理解答案的一部分或任何内容,请随时评论您需要帮助的地方,我们将尽最大努力为您提供帮助。