“好读书,不求甚解;每有会意,便欣然忘食。”
文章目录
前言
昨天我们学习了C#语言的一维数组,今天我们来学习C#语言的二维数组和结构体:
在C#中,可以使用二维数组来存储表格形式的数据。在一些算法题中,也是非常常见的。
文章有误敬请斧正 不胜感恩!||Day03
提示:以下是本篇文章正文内容,下面案例可供参考
一、C#二维数组
声明二维数组
你可以使用以下语法来声明一个二维数组:
// 声明一个 2x3 的二维数组
int[,] array = new int[2, 3];
初始化二维数组
你可以在声明时直接初始化数组的元素:
// 声明并初始化一个 2x3 的二维数组
int[,] array = new int[,] {
{ 1, 2, 3 },
{ 4, 5, 6 }
};
访问二维数组的元素
你可以通过索引来访问和修改数组中的元素:
// 访问二维数组中的元素
int value = array[0, 1]; // 获取第一行第二列的元素,值为2
// 修改二维数组中的元素
array[1, 2] = 10; // 将第二行第三列的元素修改为10
示例代码
下面是一个完整的示例代码,展示了如何声明、初始化、访问和遍历一个二维数组:
using System;
class Program
{
static void Main()
{
// 声明并初始化一个 2x3 的二维数组
int[,] array = new int[,] {
{ 1, 2, 3 },
{ 4, 5, 6 }
};
// 访问并打印二维数组中的元素
Console.WriteLine("Element at [0, 1]: " + array[0, 1]); // 输出:2
// 修改二维数组中的元素
array[1, 2] = 10;
// 遍历并打印整个二维数组
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
Console.Write(array[i, j] + " ");
}
Console.WriteLine();
}
}
}
运行上述代码会输出:
Element at [0, 1]: 2
1 2 3
4 5 10
这个示例展示了如何声明、初始化、访问、修改和遍历一个二维数组。希望这些内容对你有帮助!如果你有其他问题,随时告诉我。
二、C#语言结构体
在C#中,结构体(struct)是一种值类型,用于封装一组相关的数据。与类(class)不同,结构体是值类型,而不是引用类型,这意味着结构体的实例在赋值或传递时会被复制。
声明和使用结构体
以下是如何声明和使用结构体的示例:
声明结构体
你可以使用struct
关键字来声明一个结构体:
// 声明一个结构体
public struct Point
{
public int X;
public int Y;
// 构造函数
public Point(int x, int y)
{
X = x;
Y = y;
}
// 方法
public void Display()
{
Console.WriteLine($"Point: ({X}, {Y})");
}
}
初始化和使用结构体
你可以像使用其他数据类型一样,使用结构体:
using System;
class Program
{
static void Main()
{
// 使用构造函数初始化结构体
Point point1 = new Point(10, 20);
point1.Display(); // 输出:Point: (10, 20)
// 使用默认构造函数初始化结构体,并手动赋值
Point point2;
point2.X = 30;
point2.Y = 40;
point2.Display(); // 输出:Point: (30, 40)
// 结构体是值类型,赋值会复制其内容
Point point3 = point1;
point3.X = 50;
point3.Display(); // 输出:Point: (50, 20)
point1.Display(); // 输出:Point: (10, 20)
}
}
结构体的特性
- 值类型:结构体是值类型,在赋值和传递时会被复制。
- 不支持继承:结构体不能从另一个结构体或类继承,也不能被继承。
- 可以实现接口:结构体可以实现一个或多个接口。
- 无参数构造函数:结构体可以有构造函数,但不能定义无参数构造函数(编译器会提供一个默认的无参数构造函数)。
何时使用结构体
结构体通常用于表示小而简单的数据结构,这些数据结构的实例频繁地被创建和销毁,或者需要高效的内存管理。常见的使用场景包括几何坐标、颜色值和时间点等。
示例
下面是一个更复杂的示例,展示了结构体的更多功能:
using System;
public struct Rectangle
{
public Point TopLeft;
public Point BottomRight;
public Rectangle(Point topLeft, Point bottomRight)
{
TopLeft = topLeft;
BottomRight = bottomRight;
}
public void Display()
{
Console.WriteLine($"Rectangle: TopLeft({TopLeft.X}, {TopLeft.Y}), BottomRight({BottomRight.X}, {BottomRight.Y})");
}
}
class Program
{
static void Main()
{
Point p1 = new Point(0, 0);
Point p2 = new Point(10, 10);
Rectangle rect = new Rectangle(p1, p2);
rect.Display(); // 输出:Rectangle: TopLeft(0, 0), BottomRight(10, 10)
}
}
希望这些内容能帮助你更好地理解和使用C#中的结构体。今天家里停电啦!就更新到这里,我们明天见。
总结
今天我们介绍了在C#中如何声明、初始化、使用二维数组和元素访问方法。。主要内容包括:
- 声明二维数组:使用
int[,]
语法声明一个2x3的二维数组。 - 初始化二维数组:在声明时直接初始化数组的元素。
- 访问和修改二维数组的元素:通过索引访问和修改数组中的特定元素。
明天见!