我寫了一個類似這樣的東西
程式進入點
program.cs
namespace 8787
{
class Program
{
private readDocument readDocument;
public readDocument getReadDocument()
{
return this.readDocument;
}
static void Main(string[] args)
{
List<string> strList = new
readDocument.anadocument(strList)
}
}
}
ReadDocument.cs
namespace 8787
{
class readDocument
{
public void anadocument(List<string> strList)
{
#某執行程式
}
}
}
然後會一直跳出這個錯誤
需要有物件參考,才可使用非靜態欄位、方法或屬性 'Program.readDocument'。
請問該如何解決呢?
補充:由於anadocument還有其他用途,步行將它改成靜態類別
痾,謝謝各位幫助,我後來發現到我耍蠢了,這樣改就OK了
program.cs
namespace 8787
{
class Program
{
private readDocument readDocument;
public readDocument getReadDocument()
{
return this.readDocument;
}
static void Main(string[] args)
{
List<string> strList = new List<string>;
readDocument r = new readDocument();
r.anadocument(strList);
}
}
}
class ReadDocument {
public void AnaDocument(List<string> strList) {
...
}
}
...
class Program {
private ReadDocument readDocument = new ReadDocument();
public readDocument.GetReadDocument() {
return this.readDocument;
}
static void Main(string[] args) {
List<string> strList = new List<string>();
...
Program app = new Program();
app.GetReadDocument().AnaDocument(strList);
}
}
這樣?
把你的物件變成靜態類別。
static class readDocument {
public static void anadocument(List<string> strList) {
}
}
class readDocument {
public List<string> anadocument(List<string> strList) {
return null;
}
}
class Program {
private readDocument readDocument;
public readDocument getReadDocument() {
return this.readDocument;
}
static void Main(string[] args) {
List<string> strList = new readDocument().anadocument(null);
}
}
這樣呢?
我試試看
不行,而且這樣寫並不是我想要的執行結果,謝謝您的指點
我不太曉得您要的結果是什麼~XDDD
不過要在靜態
的Main當中使用readDocument欄位
的話,readDocument欄位
本身就必須是靜態
的才行~
題外話:類別
、方法
命名上建議還是使用Pascal命名法
,不然很容易跟變數搞混,範例中我一並幫您改掉了~XDDD
class Program
{
// 加上static修飾字
static private ReadDocument _readDocument;
// 類別內部就不用另外寫get了
static void Main(string[] args)
{
List<string> strList = new List<string>();
_readDocument.AnaDocument(strList);
}
}
class ReadDocument
{
public void AnaDocument(List<string> strList)
{
// do something
}
}