引用来自另一个类的公共字符串

本文关键字:字符串 另一个 引用 | 更新日期: 2023-09-27 18:05:21

由于某种原因,即使我在Program.cs中声明了静态和公共字符串,当我在另一个类中引用它时,例如Class1.cs,它找不到它:

Program.cs

public static string fileName = "test.txt";

Class1.cs

    XElement address = new XElement("PingResults",
        new XElement("NameoFile", fileName),
        new XElement("URL", test),
        new XElement("Time", test2)
    );

我也试过使用Class1。文件名,但运气不好…什么好主意吗?

引用来自另一个类的公共字符串

在这种情况下,您将使用Program.fileName -因为fileNameProgram类上的一个字段。

重要的是要注意,这不是最好的方式- public static的东西对所有类都可见,但是你可能会更好地传递一个参数到Class1中的方法-例如,ProcessXml(fileName)将是方法调用,public void ProcessXml(string fileName)将是Class1中的方法签名,然后在ProcessXml方法中,或者无论它被调用,你都可以访问参数fileName及其值。

正如Cicada所暗示的那样,命名也是off的。这里有一些指导方针:http://msdn.microsoft.com/en-us/library/xzf533w0(v=vs.71).aspx

您已经在类Program中定义了fileName。因此,您应该通过Program.fileName访问它。

旁注:fileName不遵循。net命名标准。使用FileName代替!

我想你可以在节目中得到它。文件名,但是这是一个非常糟糕的方式。

fileName是哪个类的静态成员?它是Program类的成员吗?在本例中,需要输入Program.filename

Astatic字段f必须用以下语法访问:A.f
A非静态字段f必须用a.f访问,其中A是类型为A的对象(实例)

它将在Program.cs中定义的任何类中,可能是Program.

类外使用的静态成员应该在声明它们的类名之前。试试Program.fileName

任何静态成员都属于一个类型。因此,您必须告诉编译器以哪种类型查找成员。c#中没有真正的全局变量。

假设你的类叫做Program,那么这行代码应该是:

new XElement("NameoFile", Program.fileName),