-5

重複の可能性:
switch case ステートメントを使用した問題

私は現在このようなコードを持っています

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Drawing;
using System.ComponentModel;
using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop.Excel;
namespace Excel1
{
    class Program
    {
        static void Main(string[] args)
        //public void ExcelOps()
        {
            //string str;
            Excel.Application xlApp = new Excel.Application();
            Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"D:/WebServiceTemplate.xlsx");
            Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
            Excel.Range xlRange = xlWorksheet.UsedRange;
            int rowCount = xlRange.Rows.Count;
            int colCount = xlRange.Columns.Count;
            int numSheets = xlWorkbook.Sheets.Count;
            //
            // Iterate through the sheets. They are indexed starting at 1.
            //
            for (int sheetNum = 1; sheetNum <=1; sheetNum++)
            {
                Worksheet sheet = (Worksheet)xlWorkbook.Sheets[sheetNum];
                //
                // Take the used range of the sheet. Finally, get an object array of all
                // of the cells in the sheet (their values). 
                //
                object[,] valueArray = (object[,])xlRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);
                //
                // Do something with the data in the array with a custom method.
                //                
                ProcessInput(valueArray);
            }
        }
        public static void ProcessInput()
        {
        }
    }
}

カスタムメソッドを使用して、配列内のデータで何かをしようとしています。実行すると、「メソッド 'ProcessInput' のエラー オーバーロードが 1 つの引数を受け取りません」というエラーが表示されます。

なにが問題ですか?どうすればこれを修正できますか?

4

3 に答える 3

8

これが完全なコードである場合、コンパイラは完全に正しいです。

このコードには関数定義がありません ProcessInput(..);

編集

編集された投稿を見ると、見逃したのはProcessInput関数を次のように宣言していると言うでしょうstatic

    public static void ProcessInput()
    {
       ....
    }
于 2012-06-15T07:59:40.037 に答える
4

今(あなたの質問を編集した後)問題はProcessInput、クラスのインスタンスを持たずにインスタンスメソッド()を呼び出していることですProgramMain静的メソッドです)。

問題を解決するために、staticとしてもマークProcessInputします。

public static void ProcessInput()
{
}

または、クラスのインスタンスを作成し、Programそのメソッドを呼び出します。

Program prg = new Program();
prg.ProcessInput();
于 2012-06-15T08:04:12.797 に答える
3

に変更してみてください

public static void ProcessInput()
{
}
于 2012-06-15T08:04:29.183 に答える