C#数组篇讲解
发布日期:2021-06-30 19:10:42
浏览次数:2
分类:技术文章
本文共 2768 字,大约阅读时间需要 9 分钟。
数组是我们经常用到的,我来介绍一下:数组是具有相同类型的一组数据。当访问数组中的数据时,可以通过下标来指明。c#中数组元素可以为任何数据类型,数组下标从0开始,即第一个元素对应的下标为0,以后逐个递增。数组可以一维也可多维。
//包含6个元素的一维整数数组; int[] mf1=new int[6]; //注意初始化数组的范围,或者指定初值; //包含6个元素的一维整数数组,初值1,2,3,4,5,6 int[] mf2=new int[6]{1,2,3,4,5,6}; //一维字符串数组,如果提供了初始值设定项,则还可以省略 new 运算符 string[] mf3={"c","c++","c#"}; //一维对象数组 Object[] mf4 = new Object[5] { 26, 27, 28, 29, 30 }; //二维整数数组,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4 int[,] mf5=new int[,]{ {1,2},{3,4}}; //6*6的二维整型数组 int[,] mf6=new mf[6,6]; 下面来看一个一维字符串数组的遍历 using System; public class Hello Word { static void PrintArray(string[] arr) { //打印数组元素,arr.Length 表示数组元素的个数 for(int i=0;i<arr.Length;i++) { Console.WriteLine("arr[{0}]={1}",i,arr[i]); } } public static void Main() { string[] arr={"c","c++","c#"}; //将数组作为一个参数传递 PrintArray(arr); } }程序结果:arr[0]=c arr[1]=c++ arr[2]=c# 下面来看一个4行2列(4*2)的整型数组的遍历: using System; public class Hello Word { static void PrintArray(int[,] arr) { //通过两次FOR循环遍历二维数组 for(int i=0;i<4;i++)//初始化i作为循环变量,i++实现该变量的自增运算。 //for循环满足条件后执行完循环体一次后执行i++,然后进入下次循环。简单的c语法,这里做简单介绍照顾初学者。(详细可参阅谭浩强先生的c语言程序设计一书) { for(int j=0;j<2;j++) { Console.WriteLine("arr[{0},{1}]={2}",i,j,arr[i,j]);//打印每个二维数组元素 } } } public static void Main() { //主函数 //将数组作为一个参数传递 PrintArray(new int[,]{ {1,2},{3,4},{5,6},{7,8}}; } }运行结果:arr[0,0]=1 arr[0,1]=2 arr[1,0]=3 arr[1,1]=4 arr[2,0]=5 arr[2,1]=6 arr[3,0]=7 arr[3,1]=8
类是面向对象程序设计的基本构造块,详细我们在后面介绍。这里我们介绍两个特殊的类,即object类和string类 1.object类 object类是预定义类System.Object的别名,它是所有其他类型的基类。c#中所有类型都直接或间接从object类中继承。因此,一个object类的变量可以赋予任何类型的值。 int i=30;object obj1;obj1=i;object obj2='a'; 2.string类 string类专门用于对字符串的操作,他是预定义类System.String的别名 string str1="Hello Word"; 可以用"+"号连接两个字符串。 string str2="username:"+"Hello Word"; 如果访问单个字符,则要用下标。 char c=str1[0]; 比较两个字符串是否相等,可用比较操作符"=="//有别于basic语法 bool b=(str1==str2);c# 中,取消了c和c++中使用最灵活,也是最难掌握的指针。那么在c#中如何提供c/c++中的函数指针的功能?c#提供了委托(delegate),委托是继承自System.Delegate类的引用类型。它相当于函数指针原型。与函数指针不同的是,委托在c#中是类型安全的,委托特别适合于匿名调用。要使用委托需经过三个步骤,即声明、实例化、调用。
using System; //声明一个名为mfDelegate的委托,该委托有一个string类型的参数 //c#编译器编译时会产生一个新类,该类继承自System.Delegate,类 //名为mfDelegate public delegate void mfDelegate(string name); public class Hello Word { //定义与mfDelegate有相同参数类型的方法Hello() public static void Hello(string name) { Console.WriteLine("您好,{0}!",name); } //定义与mfDelegate有相同参数类型的方法GoodBye() public static void GoodBye(string name) { Console.WriteLine("再见,{0}!",name); } public static void Main() { //创建一个mfDelegate实例 mf1 mfDelegate mf1=new mfDelegate(Hello); //调用mf1 mf1("Hello Word"); mfDelegate mf2=new mfDelegate(GoodBye); mf2("Hello Word"); //将mf1 mf2组合成一个新的委托mf3 mfDelegate mf3=mf1+mf2; //调用mf3 mf3("程序员"); //从组合的委托mf3中删除mf1 mfDelegate mf4=mf3-mf1; mf4("Hello Word"); } }程序结果:您好,Hello Word!//mf1; 再见,Hello Word!//mf2
您好,程序员! 再见,程序员!//mf3 再见,Hello Word!//mf4
转载地址:https://linuxstyle.blog.csdn.net/article/details/1539764 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月20日 10时17分34秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
yolov3入门实战
2019-04-30
B树 & B+树
2019-04-30
Node-Red(一)——简介与安装
2019-04-30
representation learning 表示学习/表征学习
2019-04-30
Haar特征
2019-04-30
Python 之 histogram直方图
2019-04-30
Python 之 Scatter散点图
2019-04-30
Python实现决策树 Desision Tree & 可视化
2019-04-30
决策树 Decision tree
2019-04-30
nominal和ordinal & 数据处理中四种基本数据类型
2019-04-30
Python 实现 Cross-validation
2019-04-30
Grid SearchCV(网格搜索)& Python实现
2019-04-30
ROS相关知识
2021-07-03
单目深度估计 monodepth2模型 代码
2019-04-30
位图索引Bitmap indexes
2019-04-30