一维数组
声明数组
datatype[] arrayName;
- datatype 用于指定被存储在数组中的元素的类型。
- [ ] 指定数组的秩(维度)。秩指定数组的大小。
- arrayName 指定数组的名称。
初始化数组
声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。
数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例。数组下标从0开始.
例如:
double[] balance = new double[10];
赋值给数组
您可以通过使用索引号赋值给一个单独的数组元素,比如:
double[] balance = new double[10];
balance[0] = 4500.0;
您可以在声明数组的同时给数组赋值,比如:
double[] balance = { 2340.0, 4523.69, 3421.0};
您也可以创建并初始化一个数组,比如:
int [] marks = new int[5] { 99, 98, 92, 97, 95};
在上述情况下,你也可以省略数组的大小,比如:
int [] marks = new int[] { 99, 98, 92, 97, 95};
您也可以赋值一个数组变量到另一个目标数组变量中。在这种情况下,目标和源会指向相同的内存位置:
int [] marks = new int[] { 99, 98, 92, 97, 95};
int[] score = marks;
当您创建一个数组时,C# 编译器会根据数组类型隐式初始化每个数组元素为一个默认值。例如,int 数组的所有元素都会被初始化为 0。
访问数组元素
元素是通过带索引的数组名称来访问的。这是通过把元素的索引放置在数组名称后的方括号中来实现的。例如:
double salary = balance[9];
注意:使用"数组.Length"可获得数组的长度.以此在循环中控制数组循环遍历次数.
二维数组
二维数组可理解为二维表格.
二维数组语法:
声明: 数据类型[,] 数组名;
例如 :int [,] i; //声明二维数组i
声明并初始化: 数据类型[,] 数组名 = new 数据类型[行数,列数];
例如: int[,] x = new int[3,4]; //声明1个3行4列的数组x.总元素为3*4=12个.注意每个维度下标从0开始.
//定义了3行x4列的二维数组
//注意每个维度下标从0开始
int[,] num_array = new int[3, 4] {
{1, 2, 3, 4 },
{5, 6, 7, 8 },
{9, 10, 11, 12 }
};
//双重for循环遍历二维数组,输出数组各元素值
for (int i = 0; i < num_array.GetLength(0); i++)
//num_array.GetLength(0).返回多维数组第1维长度
{
for (int j = 0; j < num_array.GetLength(1); j++)
//num_array.GetLength(1).返回多维数组第2维长度
{
Console.Write("num_array[{0},{1}]={2} ", i, j, num_array[i, j]);
//工整输出数组元素
}
Console.WriteLine();
}
//使用foreach循环遍历数组.简单简洁.
//(但却无法获得元素下标,也无法手动控制循环)
foreach (int num in num_array)
{
Console.WriteLine(num);
}
更多参考:菜鸟教程数组参考 讲述C#数组更多特性
C# 数组细节(菜鸟教程)
在 C# 中,数组是非常重要的,且需要了解更多的细节。下面列出了 C# 程序员必须清楚的一些与数组相关的重要概念:
概念 | 描述 |
---|---|
多维数组 | C# 支持多维数组。多维数组最简单的形式是二维数组。 |
交错数组 | C# 支持交错数组,即数组的数组。 |
传递数组给函数 | 您可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针。 |
参数数组 | 这通常用于传递未知数量的参数给函数。 |
Array 类 | 在 System 命名空间中定义,是所有数组的基类,并提供了各种用于数组的属性和方法。 |
unity学习路线和课程
枚举类型
语法:
enum <枚举名称> { 枚举列表 };
枚举列表中的每个符号代表一个整数值,默认情况下(没有手动指定整数值),第一个枚举符号的值是 0,之后依次自动+1,例如:enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };
枚举值如果没有手动指定整数值,则默认第一个枚举值为0,之后的枚举值依次自动+1
注意:也可以手动指定枚举值为整数值.手动指定枚举值后,后续的枚举值如果没有手动指定整数值,则自动依次+1.
namespace ConsoleApp002
{ enum 农历 {
//每个枚举值可手动指定整数值,
//其后的枚举值若没有手动指定整数值,则自动依次+1
元日 = 101,
元宵节 = 115,
龙抬头 = 202,
上巳节 = 303,
端午节 = 505,
七夕节 = 707,
中秋节 = 815,
除夕 = 1230
}
//切记!!!如果手动指定枚举值的整数值,
//千万不要给不同的枚举值指定相同的整数!!!
class Program
{
static void Main(string[] args)
{
农历 今天 = (农历)714; //强制将int类型转换为自定义的enum-农历类型
string 信息;
switch (今天) //查看今天是否过节
{
case 农历.元日:
信息 = "今天是元日.";
break;
case 农历.元宵节:
信息 = "今天是元宵节.";
break;
case 农历.龙抬头:
信息 = "今天是龙抬头.";
break;
case 农历.上巳节:
信息 = "今天是上巳节.";
break;
case 农历.端午节:
信息 = "今天是端午节.";
break;
case 农历.七夕节:
信息 = "今天是七夕节.";
break;
case 农历.中秋节:
信息 = "今天是中秋节.";
break;
case 农历.除夕:
信息 = "今天是除夕.";
break;
default:
信息 = "洗洗睡吧,今天不过节.";
break;
}
Console.WriteLine(信息);
Console.ReadKey();
}
}
}
结构体
访问修饰符
public:所有皆可访问.
internal:在同一程序集的可访问
[struct不支持此访问修饰符]protected:保护的,仅在当前类或派生类可访问.
private:仅在当前类或结构可访问
struct访问修饰符可以为public和internal,默认为internal.
struct成员访问修饰符可以为public, internal, private.默认为private.