我想声明并初始化一个类本地的字符串变量,但是可以被该类的所有函数访问。 Fyi,这是一个gui的应用程序,它将使用文件夹中的几个文本文件。我正在尝试设置一个包含项目目录路径的字符串变量,以便该类中的所有函数都可以访问它。
我提供了一部分代码,包括设置路径的函数以及在设置时使用字符串变量的函数。
public class Program
{
private string DirectoryPath;
public static void Main()
{
setPaths();
SetGroundTempArray();
}
public static void setPaths()
{
DirectoryPath = Directory.GetCurrentDirectory();
}
public static void SetGroundTempArray()
{
string groundtempfile = "\\groundtemp.txt";
string groundtempdir = "\\Text Files";
string groundtempFP = DirectoryPath + groundtempdir + groundtempfile;
}
}
答案 0 :(得分:2)
您的代码无法编译
您应该将DirectoryPath
类字段声明为static:
private static string DirectoryPath;
答案 1 :(得分:1)
所以你现在正走在正确的轨道上。在C#中,我们称之为Fields
字段通常存储必须可访问的数据 一个类方法,必须存储超过生命周期 任何一种方法
在您的情况下,private string DirectoryPath;
是一个字段。而且你正在遵循制作它的良好做法private
。
同样如上所述,您将所有方法都设为static
,因此您还需要使用字段变量static
来访问它
private static string DirectoryPath;
可以选择将字段声明为静态。这使得该领域 即使没有该类的实例,也可以随时向呼叫者提供 存在。
答案 2 :(得分:1)
如您的示例中所示,您已根据所需功能正确完成了该操作。但您可能需要了解有关在C#中使用static
个关键字的更多信息。您可以在MSDN
这是对您的代码的拦截,可能会清除您的概念
由于DirectoryPath
由您的progream中的静态方法使用,您必须将此变量声明为static
,因为,setPaths
方法用于静态Main,Main是最顶层的不需要为Program
类创建实例的级别静态类。这就是为什么Main
方法需要在方法中使用的所有方法或变量或字段必须声明为静态。
public class Program
{
private static string DirectoryPath;
public static void Main()
{
setPaths();
SetGroundTempArray();
}
public static void setPaths()
{
DirectoryPath = Directory.GetCurrentDirectory();
}
public static void SetGroundTempArray()
{
string groundtempfile = "\\groundtemp.txt";
string groundtempdir = "\\Text Files";
string groundtempFP = DirectoryPath + groundtempdir + groundtempfile;
}
}
答案 3 :(得分:0)
在字符串前添加静态。
class Program
{
//add static in front of string
static String a = "Hello";
static void Main(string[] args)
{
h();
Console.ReadKey();
}
public static void h()
{
Console.WriteLine(a);
}
}