1

我对此代码有疑问。我是初学者,喜欢学习 C#。但后来我谈到了现在称为 Array 的主题,这非常困难,我需要你的帮助。我想了解代码。我在这里不明白的是这里的第1、2、3、4和5部分是什么意思?
我不明白这里的“const”和“byte”的作用是什么?我会很感激你的解释?感谢和问候;-)

1)

const byte numbers = 5;
byte[] myNumbers = new byte[numbers];
byte additionalNumbers;
Random coincidenceNumbers = new Random();

2)

string yourPassword;
Console.WriteLine("Please enter your password:");
yourPassword = Console.ReadLine();

if (yourPassword != "helloWorld")
{ 
    Console.WriteLine("\nWrong password\n");
    return;
}
else 
{
    Console.WriteLine();
    Console.WriteLine("Welcome to my world!");

    for (int i=0; i < myNumbers.Length; ++i)
    { 
        myNumbers[i]=(byte)(coincidenceNumbers.Next(1,50));
    }
}

3)

additionalNumbers=(byte) (coincidenceNumbers.Next(1,50));

4)

Array.Sort(myNumbers);
Console.WriteLine("\nThe Number is:\n");

5)

foreach (byte elem in myNumbers)
{
    Console.WriteLine("\t" + elem);
    Console.WriteLine();
    Console.WriteLine("Additional Number is: " + additionalNumbers);
}
4

6 回答 6

2

const 是一个保留词,意思是“变量”不会改变,相反,它的值不会改变,如果你试图改变

const byte numbers = 5;
numbers = 6; // will fail

byte 是一种用于存储小数字的类型

然后,

byte[] myNumbers = new byte[numbers];

创建一个数字 (5) 个位置的数组。例如,您可以将值分配给数组中的任何位置,如下所示:

myNumbers[0] = 4;  // position 1
myNumbers[1] = 45;  // position 2
myNumbers[2] = 25;  // position 3
myNumbers[3] = 0;  // position 4
myNumbers[4] = 12;  // position 5
myNumbers[5] = 3;  // will fail, array just have 5 positions

[编辑]

additionalNumbers=(byte) (coincidenceNumbers.Next(1,50));

在这里,cognitiveNumbers 是一个 Random 对象,所以它会生成随机数。它的“Next”函数将生成一个整数。它接收 2 个参数:最小值和最大值。所以,这里它会生成一个介于 1 到 50 之间的随机数。

整数与字节相比很大,所以有一个“强制转换”......整数将转换为字节。如果整数小于 255,没问题,否则会丢失精度

如果你尝试这样做

int x = 500;
byte y = (byte) x;
Console.WriteLine(y); // 244, precision lost
于 2009-04-06T20:09:32.687 回答
1

您需要阅读一些有关数组的基础教育材料,例如尝试MSDN Arrays Tutorial

于 2009-04-06T20:07:59.180 回答
0

byte 是一个整数类型,存储值 0..255

const 表示变量“numbers”的值永远不会改变(所以它是常数)。

于 2009-04-06T20:08:17.243 回答
0
  1. 创建一个包含一个字节的常量变量,值为 5。
  2. 为文本字符串腾出位置并调用变量 yourPassword。
  3. 循环遍历 myNumbers 中的每个字节。
  4. 对 myNumbers 进行排序。
  5. 再次循环遍历 myNumbers 中的每个字节(这次是排序的),调用每个字节“elem”。

你真的应该阅读一些关于编程的初学者教程(一般来说)。这与实际的 Array 类关系不大。

编辑:Aaaand 你改变了你的问题......

于 2009-04-06T20:09:46.647 回答
0

我猜 1*、2*、3*、4* 和 5* 是在您正在查看的示例中向您指出某些东西的符号。

const是一个修饰符,将变量标记为常量(即它永远不会改变)

byte是一种数据类型,将存储 1 个字节(8 位)的数据。

编辑好吧,现在我觉得很愚蠢......当我最初阅读它时,这个问题的格式并不完全相同。随意忽略我的回答...

于 2009-04-06T20:10:41.467 回答
0

来自MSDN

常量:

const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,这意味着它不能被修改。

例如:

const byte numbers = 5;

您正在声明一个名为“字节”类型的常量变量,其值为5。

稍后,您将无法更改变量编号,例如:

numbers = 6; // this is not allowed because it was declared as const

我希望这能澄清你问题的第一部分。

我建议去MSDN并查找问题其他部分的条款。尝试养成使用此资源以供将来参考的习惯。

于 2009-04-06T20:11:13.400 回答