2011-08-10 13 views
-6

私のような何かを試してみました: "getlineの(ファイル名、行)" 運を"過負荷メソッドのgetlineのための" ヘルプ(C#の)

コード:あなたがメソッドをオーバーロードしたい場合は

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


     string GetLine(string fileName, int line) 
{ 

...... 

} 
+1

あなたは正確に何をしようとしていますか?あなたの 'GetLine'はどこに定義されていますか?パラメータが渡されていないコールを呼び出すのはなぜですか? – Oded

+1

あなたは何をしようとしているのか、何が問題になっているのかはあまり明確ではありません。あなたが投稿した情報に基づいて、文字列とintの引数を取るGetLineというメソッドがあるように見えますが、パラメータを渡すことなくGetLineというメソッドを呼び出しています。したがって、コンパイラはパラメータなしで定義されたGetLineのメソッド定義を探しており、GetLineを見つけることはできません。パラメータの既定値でGetLineを定義した場合、GetLine()呼び出しがコンパイルされます。これで十分ですか? – IanT8

答えて

1

静的関数内で非静的宣言されたGetLineを呼び出しています。

GetLine宣言をstaticとしてマークするか、両方の関数を含むクラスのインスタンスを作成します。

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'です。 Marioの答え –

+0

@Kieren、thats trueを参照してください。しかし、GetLineメソッドを呼び出す際に、 "GetLineのオーバーロードメソッドなし"というメッセージを表示するパラメータを渡すこともありません。彼は2つのことを行う必要があります。メソッドを静的にし、パラメタを渡したり、パラメータを受け入れないようにGetLine()メソッドをオーバーロードしたりしてください。 – Jethro

0

このように直接呼び出す場合は、静的メソッドである必要があります。 private static string GetLine(string fileName, int line)

関連する問題