|
■No84876 (komattasan さん) に返信 > ・Program.csで以下を実施 > ・static void Main(string[] args)内にDiffResult[] Diff(string textA, string textB);を追記
『DiffResult[] Diff(string textA, string textB);を追記』したのは何故でしょうか。
また、Main メソッドは void Main(string[] args) ではなく static void Main(string[] args) という定義なわけですが、この「static」の意味は把握されていますでしょうか。
> エラー CS0501 'Diff(string, string)' は abstract、extern、または partial に指定されていないため、本体を宣言する必要があります。 このエラーの理由は、追記した Diff メソッドの宣言が DiffResult[] Diff(string textA, string textB); { // // DoSomething // return 結果; // DiffResult[]型 } ではなく、処理本体の無い DiffResult[] Diff(string textA, string textB); という定義になっていたためでしょう。
本体部の無いメソッドというのは、 ・interface のメソッド定義 ・外部 DLL で定義された API のメソッド(extern) ・継承先で実装せねばならない抽象メソッド(abstract) ・本体部が別の .cs ファイルで定義された部分メソッド(partial) のいずれかに限られますが、今回はそのいずれでもないため、エラーになっています。
先のサンプルを利用するだけであれば、class Program 内にメソッドを追加する必要は無く、 static void Main の中で var result = FastDiff.Diff( 元テキスト, 変更テキスト ); あるいは var result = FastDiff.Diff( 元テキスト, 変更テキスト, DiffOption構造体 ); のように呼び出してやるだけで OK です。 上記の result の型は、FastDiff.DiffResult の配列になります。
|