引用来自另一个类的公共字符串
本文关键字:字符串 另一个 引用 | 更新日期: 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
-因为fileName
是Program
类上的一个字段。
重要的是要注意,这不是最好的方式- 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
类A
的static字段f
必须用以下语法访问:A.f
类A
的非静态字段f
必须用a.f
访问,其中A是类型为A
的对象(实例)
它将在Program.cs中定义的任何类中,可能是Program.
类外使用的静态成员应该在声明它们的类名之前。试试Program.fileName
任何静态成员都属于一个类型。因此,您必须告诉编译器以哪种类型查找成员。c#中没有真正的全局变量。
假设你的类叫做Program,那么这行代码应该是:
new XElement("NameoFile", Program.fileName),