C#数组篇讲解

数组

继续上回,数组是我们经常用到的,我来介绍一下:数组是具有相同类型的一组数据。当访问数组中的数据时,可以通过下标来指明。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 MikeCat
{
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 MikeCat
{
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="mikecat";
可以用"+"号连接两个字符串。
string str2="username:"+"mikecat";
如果访问单个字符,则要用下标。
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 MikeCat
{
//定义与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("mikecat");
mfDelegate mf2=new mfDelegate(GoodBye);
mf2("mikecat");
//将mf1 mf2组合成一个新的委托mf3
mfDelegate mf3=mf1+mf2;
//调用mf3
mf3("迈克老猫");
//从组合的委托mf3中删除mf1
mfDelegate mf4=mf3-mf1;
mf4("mikecat");
}
}

时间: 2024-08-30 12:45:23

C#数组篇讲解的相关文章

PHP学习笔记之数组篇

一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我们来看看如何创建一个数组 (1)直接给每个元素赋值的方法创建数组. 格式为:$arrayname[key]=value; 其中arrayname为数组的名字,key为数组的元素的键,value为元素的值.键可以是0,1,2,3这一类数字,也可以是字符串.如下所示: 复制代码 代码如下: 1 <?php 2 //用1,2,3的数值作为数组的键 3 echo '<p>数组$array1的键值为:</p>'; 4 $ar

PHP常用开发函数解析之数组篇[未完结]_php技巧

一.数组处理函数: 醉感觉:数组处理函数在PHP开发中非常常见,学习好数组处理函数至关重要.数组处理函数在实际应用中涉及到:数组的创建,字符串于数组的相互转换,数组转XML,数组转JSON.数组的检测.数组的合并于分割.数组的数目.获取数组中的所有值,获取数组中的所有键值[下标] 1.创建数组: $new = array(); 2. implode(分隔,str) 把数组值数据按指定字符连接起来 复制代码 代码如下: $arr = array('Hello','World!','Beautifu

PHP学习笔记之数组篇_php技巧

一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我们来看看如何创建一个数组 (1)直接给每个元素赋值的方法创建数组. 格式为:$arrayname[key]=value; 其中arrayname为数组的名字,key为数组的元素的键,value为元素的值.键可以是0,1,2,3这一类数字,也可以是字符串.如下所示: 复制代码 代码如下: 1 <?php 2 //用1,2,3的数值作为数组的键 3 echo '<p>数组$array1的键值为:</p>'; 4 $ar

php 5.2.x 不被注意的细节: 数组篇

刚看了php的教程,由于php版本的问题发现数组这边有地方可以研究针对 php5.2.5 做了几个实验发现:   1. $arr = array("a" => 1,"b" => 2,"c" => 3);但是如果这样定义数组会报编译错误: $arr = array("a" = 1,"b" = 2,"c" = 3);所以定义数组的时候只能用 =>   2. $arr 

JavaWeb开发入门第二篇Tomcat服务器配置讲解_java

一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点进行的端口修改 例如:将Tomcat服务器的启动端口由默认的8080改成8081端口 Tomcat服务器启动端口默认配置 <Connector port="8080" protocol="HTTP/1.1" connectionT

Linux Shell脚本系列教程(六):数组和关联数组

  这篇文章主要介绍了Linux Shell脚本系列教程(六):数组和关联数组,本文讲解了什么是数组和关联数组.定义打印普通数组.定义打印关联数组等内容,需要的朋友可以参考下 一.数组和关联数组 数组是Shell脚本非常重要的组成部分,它借助索引将多个独立的独立的数据存储为一个集合.普通数组只能使用整数作为数组索引,关联数组不仅可以使用整数作为索引,也可以使用字符串作为索引.通常情况下,使用字符串做索引更容易被人们理解.Bash从4.0之后开始引入关联数组. 二.定义打印普通数组 数组的方法有如

浅谈Javascript数组索引_javascript技巧

从题目说起,之所以是不完全,是因为有些东西比如数组的方法怎么用这个我都不打算讲,因为那个看一下都会,下面讲的都是我觉得重要的,只关于数组对象本身.另外,由于我的Javascript实战经验不多,所以可能有些东西没涉及到,有些内容说的有误,请发现问题的同学不吝指教. 首先,Javascript(下称js)的数组定义,这不是重点,简单说下,下面两句都是创建一个空的数组: var arr = []; var arr2 = new Array(); // 不写new也可以. 在创建之后,你就可以随时往数

Visual Studio调试之断点基础篇

文章导航 Visual Studio调试之断点基础篇 Visual Studio调试之断点进阶篇 Visual Studio调试之断点技巧篇 我曾经问过很多人,你一般是怎么调试你的程序的? F9, F5, F11, F-- 有很多书和文章都是介绍怎么使用Visual Studio编写WinForm啦,.ASP.NET之类的程序:知道如何编写固然重要,但是我觉得程序员可能只会花费30%的时间在编写代码上,剩下的大部分时间都是在调试程序.在网上看到很多人介绍Windbg的用法,但是没有看到几篇讲解使

java socket重要参数讲解

Java Socket的api可能很多人会用,但是Java Socket的参数可能很多人都不知道用来干嘛的,甚至都不知道有这些参数. backlog 用于ServerSocket,配置ServerSocket的最大客户端等待队列.等待队列的意思,先看下面代码 public class Main { public static void main(String[] args) throws Exception { int port = 8999; int backlog = 2; ServerSo