1

C# と ASP.NET を扱うのはこれが初めてです。Beginning ASP.NET 4 in c# 2010 を読んでいますが、オブジェクト指向プログラミングを扱ったことはありません。(私はネットワーク管理者なので、基本的なプログラミングを知っています)。

それでも、単純なプログラムを実行することはできません

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2 {
    class Program {
        static void Main(string[] args) {
            int i;
            string[] nomi = new string[7];
            string[] cognomi = new string[7];
            for (i = 0; i = 6; i++) {
                Console.WriteLine("Inserisci il", i + 1, "° nome");
                nomi[i] = (Console.ReadLine);
            }

            for (i = 0; i = 6; i++) {

                Console.WriteLine("Inserisci il", i + 1, "° cognome");
                nomi[i] = (Console.ReadLine);
            }

            for (i = 0; i = 6; i++) {
                Console.WriteLine(nomi[i], " ", cognomi[i]);
            }
        }
    }
}

問題はアルゴリズムではなく、宣言部分にあります。イタリア語の VS があるため、エラー ログを表示できません。

どこが間違っていますか?

4

5 に答える 5

4

エラーメッセージなしで支援するのは難しいです(あなたは明らかに両方の言語を知っているので、おそらくあなたはそれらを翻訳することができます)。

確かに、forループ構文は正しくありません。これ:

for (i = 0; i = 6; i++)

する必要があります:

for (i = 0; i < 6; i++)  // Or <=, or whatever

MSDNのforループドキュメントをご覧ください。

さらにConsole.ReadLine 、プロパティではなくメソッドです

nomi[i] = Console.ReadLine();
于 2013-01-18T19:13:06.110 に答える
1

forループが正しくありません。彼らはする必要があります

for (int i = 0; i < 7; i++)
{
}

または、より良い、

for (int i = 0; i < nomi.Length; i++)
{
}

これが言っていることは、iで開始し、の値が(またはの値)以上になる0までループを続け、ループごとに1ずつ増加する必要があるということです()。i7nomi.Lengthii++

また、ループとは関係なく、である必要がありますConsole.ReadLine();。は()、パラメータを受け取らないメソッドであるのに対し、ではなく、であるため、パラメータを持たないnomi.Lengthことを示しています。()propertymethod

配列も静的である必要があります。

static string[] nomi = new string[7];
static string[] cognomi = new string[7];

明確にするために、static変数を宣言するときに常に使用する必要はありません。ここで必要な理由は、静的メソッド(static void Main(string[] args))内から呼び出しているためです。

編集-コメントで述べたように、これは変数がメソッドの外部でデクラレートされていることを前提としているためMain、エラーが発生しますAn object reference is required for the nonstatic field, method, or property 'member'。そうでない場合、これらの変数は静的である必要はありません。

于 2013-01-18T19:13:17.740 に答える
0

for私はあなたと構文を修正し、Console.WriteLineあなたのコードをより読みやすくしました。これはあなたを導くことができるはずです。

const int length = 7;
string[] nomi = new string[length];
string[] cognomi = new string[length];

for (int i = 0; i < length; i++)
{
    Console.WriteLine("Inserisci il {0} ° nome", i + 1);
    nomi[i] = (Console.ReadLine());
}

for (int i = 0; i < length; i++)
{
    Console.WriteLine("Inserisci il {0} ° cognome", i + 1);
    cognomi[i] = (Console.ReadLine());
}

for (int i = 0; i < length; i++)
{
    Console.WriteLine("nomi: {0} cogomi: {1}", nomi[i], cognomi[i]);
}
于 2013-01-18T19:29:08.330 に答える
0

forループを作成するときは、forループの宣言のスコープ内で常にint変数を作成する必要があります

例:

for (int i = 0; i < 10; i++)
{
    body code goes here
}

整数を宣言し、ループのスコープ内で非表示にする必要があります。

お役に立てば幸い

于 2013-01-18T19:15:34.810 に答える
0

forループは意味がありませんfor (i = 0; i = 6; i++)

構文はfor (initialization, condition, iteration)

現在、あなたの条件は割り当てであるため、常に真になります。私はあなたがそれを望んでいたと思いますfor (i = 0; i **<** 6; i++)

于 2013-01-18T19:13:10.923 に答える