【问题标题】:Reffering to a public string from another class?引用另一个类的公共字符串?
【发布时间】:2011-10-24 01:42:13
【问题描述】:

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

【问题讨论】:

    标签: c# .net windows


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,能详细点吗?
    【解决方案2】:

    我认为您可以从 Program.fileName 获得它,但这是一个非常糟糕的方法。

    【讨论】:

    • :tom.dietrich 嗨,你能解释一下是谁吗?
    • 我推荐 Kieren 的回答。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          旁注:fileName 不遵循 .NET 命名标准。请改用FileName

          【讨论】:

          • 谢谢蝉,最佳答案!
          • 嗨马修,如果您认为这个答案是最好的,请考虑通过单击左侧的勾号来接受它:)
          【解决方案7】:

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

          假设你的类被称为 Program 代码行应该是:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-11-15
            • 1970-01-01
            • 2011-06-12
            • 1970-01-01
            • 2021-02-18
            • 2023-03-29
            • 2015-03-15
            相关资源
            最近更新 更多