2

チュートリアルを見て C# を学ぼうとしていますが、クラスの名前を変更しようとすると、次のようになります

したがって、この最初のエラーは基本的に、新しいコンソール ソリューションを作成し、クラスを宣言して名前を付け、コンソールに書き出そうとすると、2 つのエラーが発生します。

![1ST: エラー 1 クラス、構造体、またはインターフェイス メンバー宣言の無効なトークン '(' C:\Users\Alan\AppData\Local\Temporary Projects\ConsoleApplication1\Program.cs 10 23 ConsoleApplication1

2ND : エラー 2 タイプ名 'Writeline' はタイプ 'System.Console' に存在しません C:\Users\Alan\AppData\Local\Temporary Projects\ConsoleApplication1\Program.cs 10 13 ConsoleApplication1

[すべて保存] をクリックして、すべての C# ファイルを配置する予定のデスクトップ上のフォルダーに保存しましたが、これらのエラーが発生し、新しいドキュメントを開始してクリーンアップし、コンソール コマンドを記述してビルドしても、何も表示されません。エラー。

コンストラクターが必要なのか、ファイルを特定の順序で保存する必要があるのか​​ 、それとも何ですか? ] 1

4

4 に答える 4

6

System.Console.WriteLineメソッドの本体の外側への呼び出しがあるようです。コンパイラは、存在しない型を参照しようとしていると見なし(、コード ファイルの特定の時点でそれが正当ではないことも伝えています。

次のようなクラス定義がある可能性があります

class Program
{
     System.Console.WriteLine("hello world");
}

必要なのは、より似たクラス定義です

class Program
{
     public static void Main(string[] args)
     {
          System.Console.WriteLine("hello world");
     }
}
于 2013-03-28T05:27:55.690 に答える
2

アンソニー・ペグラムの答えは正しいです。using System;関連する c# ファイルの先頭にディレクティブを追加すると、コンパイラはSystem. の前にあるメソッド名前空間の部分System.Console.WriteLine()

ただし、コンソール ソリューションの名前がTestSolutionで、コンソール アプリケーション プロジェクトの名前空間がTestSolution.Consoleである場合。システム。呼び出しの前の宣言System.Console.WriteLine()は引き続き必要です。

これは、ネームスペースで終わるコンソール部分に関するコンパイラのあいまいさが原因です。TestSolution.TestConsoleという名前のコンソール プロジェクトは、記述されているクラスの名前がConsoleでない限り、名前空間の競合に遭遇しません。

.NET アプリケーションのライブラリをビルドして名前を付けるときは、名前空間の潜在的な名前の競合に注意してください。

于 2015-03-09T11:17:34.283 に答える
0

いくつかの問題があります。

まず、ファイルの無効な部分で Console.WriteLine() を呼び出そうとしています。Methodorを宣言し、Constructorその中にこの呼び出しを配置する必要があります。

コンストラクターの例:

public class Person
{
    public Person()
    {
        Console.WriteLine("Hello");
    }
}

メソッドの例:

public class Person
{
    public void SayHello()
    {
        Console.WriteLine("Hello");
    }
}

あなたの他の問題は、「WriteLine」の大文字が間違っていることです。

コードは次のようになります。

Console.WriteLine("Test");

http://msdn.microsoft.com/en-us/library/system.console.writeline.aspx

于 2013-03-28T05:29:04.760 に答える
0

メソッドを吹き飛ばしたようですMain()。また、クラス内でメソッド呼び出しをフローティングするだけではいけません (できないと思います)。メソッドまたはコンストラクター内にある必要があります。

namespace ConsoleApplication1内容を以下に置き換えてみてください。

class Program
{
    static void Main(string[] args)
    {
        Person alan = new Person();
        alan.PersonName = "Alan";

        Console.WriteLine("Hi " + alan.PersonName);
        Console.ReadLine();
    }
}

class Person
{
    public string PersonName { get; set; }
}

PS。おそらく別のファイル (例: Person.cs) に Person を含める必要がありますが、開始するにはこれでよいはずです....理想的な最終状態ではありません。

于 2013-03-28T05:29:07.947 に答える