1

これは私が作成した単純なプログラムです。1つのテーブルクラスと1つのメインクラスです。テーブルクラスで、名前を出力するだけのprintメソッドを作成しました。メインクラスからprintメソッドを呼び出していますが、出力を取得していません。

namespace ConsoleApplication3
{

    class table
    {

        public static void print()
        {
            Console.WriteLine("My name is prithvi-raj chouhan");
        }
    }

    class Program
    {
        public static void Main()
        {
            table t = new table();
            t.print();  // Error the program is not giving output while calling the print method

        }
    }


}
4

5 に答える 5

2

呼び出している関数は静的であるため。この構文を使用する

public static void Main()
         { 
            table.print();     
         } 

MSDNからの引用:-

クラスのインスタンスが作成されていない場合でも、静的メソッド、フィールド、プロパティ、またはイベントをクラスで呼び出すことができます。クラスのインスタンスが作成された場合、それらを使用して静的メンバーにアクセスすることはできません。静的フィールドとイベントのコピーは1つだけ存在し、静的メソッドとプロパティは静的フィールドと静的イベントにのみアクセスできます。静的メンバーは、オブジェクトの状態に応じて変化しないデータまたは計算を表すためによく使用されます。たとえば、数学ライブラリには、正弦と余弦を計算するための静的メソッドが含まれている場合があります。

于 2012-08-14T11:40:06.130 に答える
1

printstaticメソッドなので、静的メソッドとして呼び出します。

public static void Main()
{
    table.print();
}
于 2012-08-14T11:40:09.927 に答える
0

これを試して:

class Program
    {
        public static void Main()
        {
           table.Print();

        }
    }

Print(); は静的メソッドであるため、そのメソッドにアクセスするために新しいTableオブジェクトをインスタンス化する必要はありません。

于 2012-08-14T11:40:41.297 に答える
0

インスタンスメソッドとしてprint()を呼び出していますが、静的です。メソッドからstaticキーワードを削除してみてください。

于 2012-08-14T11:41:02.373 に答える
-1

Console.ReadLine();後にを追加してみてくださいtable.print();

アップデート:

静的なパーツが欠落していたため、修正されました。

于 2012-08-14T11:40:12.797 に答える