1

这是我第一次在 C# 和 ASP.NET 上工作,我正在阅读在 c# 2010 中开始 ASP.NET 4,但我从未使用过面向对象的编程。(我是网络管理员,所以我知道基本编程)。

尽管如此,我还是无法使用一个简单的程序

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 loop 文档

另外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,继续循环,直到 if 的值i不再小于7(或 的值nomi.Length)并且i每个循环应该增加 1(i++)。

此外,与循环无关,它应该是Console.ReadLine();. 这()表明它是一种不带参数的方法,而没有参数,nomi.Length因为()它是 a property,而不是 a method

您的数组也需要是静态的。

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 循环没有任何意义for (i = 0; i = 6; i++)

语法是for (initialization, condition, iteration)

现在你的条件是一个任务,所以它总是正确的。我想你希望它是for (i = 0; i **<** 6; i++)

于 2013-01-18T19:13:10.923 回答
0

在编写 for 循环时,您应该始终在 for 循环的声明范围内创建一个 int 变量

例子:

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

应该在循环范围内声明整数并消失。

希望有帮助

于 2013-01-18T19:15:34.810 回答
0

我更正了您的forandConsole.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 回答