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

时间:2011-08-10 12:46:59

标签: c# .net windows

出于某种原因,即使我在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.fileName,但没有运气..有什么想法吗?

7 个答案:

答案 0 :(得分:4)

在这种情况下,您可以使用Program.fileName - 因为fileNameProgram类中的字段。

重要的是要注意,这不是最佳方式 - public static所有类都可以看到事物,但是您可能最好将参数传递给Class1中的方法 - 例如ProcessXml(fileName)将是方法调用,public void ProcessXml(string fileName)将是Class1中的方法签名,然后在ProcessXml方法内,或者无论调用什么,您都可以访问参数fileName及其价值。

正如蝉所暗示的那样,命名也是关闭的。请参阅此处了解一些指南:http://msdn.microsoft.com/en-us/library/xzf533w0(v=vs.71).aspx

答案 1 :(得分:2)

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

附注:fileName不遵循.NET命名标准。改为使用FileName

答案 2 :(得分:0)

我认为你可以在Program.fileName上得到它,但这是一个非常糟糕的方法来解决这个问题。

答案 3 :(得分:0)

什么类fileName是静态成员?它是班级Program的成员吗?在这种情况下,您需要Program.filename

必须使用以下语法访问类f 静态 字段AA.f
必须使用f访问类A 非静态 字段a.f,其中a是对象(实例)输入A

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

假设您的类被调用程序代码行应该是:

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