2011-08-10 30 views
-6

我已经试过类似: “函数getline(文件名,行)” 没有运气“无过载方法函数getline” 帮助(C#)

代码:

static void Main(string[] args) 
     { 
      GetLine(); 
     } 


     string GetLine(string fileName, int line) 
{ 

...... 

} 
+1

你究竟想要做什么?你的'GetLine'定义在哪里?为什么你有一个没有参数传入的调用? – Oded

+1

你不清楚你想要做什么或者你有什么问题。根据你发布的信息,看起来你有一个名为GetLine的方法,它接受一个字符串和int参数,然而,你调用了一个名为GetLine的方法传递无参数。因此,编译器正在寻找GetLine的方法定义,该定义没有参数,并且找不到一个。如果你用参数的默认值定义了GetLine,你的GetLine()调用将会被编译。这足以解释了吗? – IanT8

回答

1

您正在调用从静态函数中声明的非静态GetLine。

要么将​​GetLine声明标记为静态,要么创建包含这两个函数的类的实例。

0

如果你想重载的方法GetLine它必须标有virtual指标。

virtual string GetLine(string fileNmae, int line) 
{ 
    //Code for method goes here 
} 

更新:

马里奥Vernari建议你将需要使该方法是静态的。

如果您想调用此方法GetLine()那么您将需要为GetLine创建一个新的重载方法。

static string GetLine() 
{ 
    return "Some string message"; //Return a string. 
} 
+0

谢谢!我会研究它:) – Mathew

+0

他不是试图重载'GetLine'方法,问题是'GetLine'不是静态的,而是'Main'。看到马里奥的答案 –

+0

@Kieren,这是真的,但他也试图调用GetLine方法,而不传入任何参数,这是给他的信息“没有GetLine的重载方法”。他需要做两件事情使得该方法是静态的,并且不传递任何参数或者将GetLine()方法重载为不接受任何参数。 – Jethro

0

如果你想直接调用它,它应该是一个静态方法。 private static string GetLine(string fileName, int line)