出于某种原因,即使我在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,但没有运气..有什么想法吗?
答案 0 :(得分:4)
在这种情况下,您可以使用Program.fileName
- 因为fileName
是Program
类中的字段。
重要的是要注意,这不是最佳方式 - 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
的 静态 字段A
:
A.f
必须使用f
访问类A
的 非静态 字段a.f
,其中a是对象(实例)输入A
答案 4 :(得分:0)
它将在Program.cs中定义的任何类中,可能是Program。
答案 5 :(得分:0)
在类外部使用的静态成员前面应该是声明它们的类的名称。试试Program.fileName
答案 6 :(得分:0)
任何静态成员都属于某个类型。因此,您必须告诉编译以哪种类型查找该成员。在C#中没有真正的全局变量。
假设您的类被调用程序代码行应该是:
new XElement("NameoFile", Program.fileName),