当前位置: 首页 > 编程日记 > 正文

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 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

相关文章:

Spring AOP详解(转载)所需要的包

上一篇文章中&#xff0c;《Spring Aop详解&#xff08;转载&#xff09;》里的代码都可以运行&#xff0c;只是包比较多&#xff0c;中间缺少了几个相应的包&#xff0c;根据报错&#xff0c;几经百度搜索&#xff0c;终于补全了所有包。 截图如下&#xff1a; 在主测试类里面…

Mendix 披露低代码方法论,解读真实技术趋势

作者 | 宋慧头图 | 下载于视觉中国出品 | AI 科技大本营&#xff08;ID:rgznai100&#xff09;在 2021年初正式宣布进入中国市场之后&#xff0c;Mendix 在近日向媒体重点披露了关于低代码的技术方法论&#xff0c;以及近四个月在中国市场的进展。Mendix 的低代码技术方法论对于…

PHP中foreach详细解读

oreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象&#xff0c;如果尝试应用于其他数据类型的变量&#xff0c;或者未初始化的变量将发出错误信息。有两种语法&#xff1a; foreach (array_expression as $value) statement foreach (array_expression…

Android ViewPager使用具体解释

这是谷歌官方给我们提供的一个兼容低版本号安卓设备的软件包&#xff0c;里面包囊了仅仅有在安卓3.0以上能够使用的api。而viewpager就是当中之中的一个利用它&#xff0c;我们能够做非常多事情&#xff0c;从最简单的导航&#xff0c;到页面菜单等等。那怎样使用它呢&#xff…

实时音视频的超级风口,开发者的机会在哪里?

2021年初因为Elon Musk“带货”而走红的音频社交App Clubhouse&#xff0c;又以肉眼可见的速度跌落神坛&#xff0c;下载量从2月的960 万/月跌至4月的92万/月。不过在5月&#xff0c;Clubhouse终于推出了安卓版&#xff0c;并表示接下来也会对所有用户开放。 另一边&#xff0c…

高可用集群之分布式文件系统

一、分布式文件系统和单机文件系统的区别&#xff1a;单机文件系统的分区只能被一台主机所挂载&#xff0c;不能同时被多台主机挂载使用&#xff0c;因为单机文件系统是通过系统内核层的锁机制来完成的&#xff0c;所以一个系统上可以有多个进程访问&#xff0c;但只能在一个时…

C#中基本知识

当数据转换到asp.net页面时&#xff0c;大部分都是以文本的形式存在的。有时候为了输出&#xff0c;单单使用显示或者隐式转换都是不行的&#xff0c;就需要本节说到的数据转换。 字符串输出&#xff1a; int intAge21; string strAgeintAge.ToString(); 转换DateTime值时&…

索引系列八--索引特性之有序难优化union

----UNION 是需要排序的drop table t1 purge;create table t1 as select * from dba_objects where object_id is not null;alter table t1 modify OBJECT_ID not null;drop table t2 purge;create table t2 as select * from dba_objects where object_id is not null;alter t…

OpenCV 实战:3 步实现图像降噪

来源 | 小白视觉志 头图 | 下载于视觉中国本文将展示如何通过三个简单的步骤来实现降噪。我们将使用机器学习训练的降噪模型&#xff0c;最好的降噪模型之一。程序可以判断图像是否有噪点吗&#xff1f;这应该是一个很有创意的想法&#xff0c;因为我们的降噪模型不够智能&…

一条数字链路连接的端口无法UP及后续相应故障的排除

故障现象1&#xff1a; 运营商检测线路正常&#xff0c;但是端口无法up。 解决办法&#xff1a; 1、翻转端口 2、将端口速率强制为1000M&#xff0c;全双工#speed 1000 #dup full 端口正常UP。 故障现象2&#xff1a; 线路丢包5%。 解决办法&#xff1a; 1、检查端口光功率&…

华为:HarmonyOS 即将开源!

整理 | 晋兆雨出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;5 月 24 日&#xff0c;在鸿蒙开发者创新大赛颁奖典礼上&#xff0c;华为消费者业务软件部总裁王成录宣布&#xff1a;HarmonyOS 将会开源开放&#xff0c;并在武汉大学等15个学校开展 HarmonyOS 课程。…

C#实现网段扫描

摘要 想必大家对小榕时光等扫描器都非常熟悉了&#xff0c;有没有自己写一个的冲动。最近微软推实施了.NET战略方案&#xff0c;C#是主推语言&#xff0c;你们是否有兴趣用C#来实现对局域网IP地址的扫描&#xff0c;尝试一下自己写的快乐&#xff0c;那么请跟我来。 正文 1.先介…

sbt配置nexus仓库

2019独角兽企业重金招聘Python工程师标准>>> 最近学习Scala&#xff0c;不可避免的要用到sbt。爱折腾的我把原本比较简单的事情搞的复杂了&#xff0c;来来回回搞了好久&#xff0c;记录下来&#xff0c;有同样爱折腾的盆友可以参考下。 sbt在windows下如果是默认安…

C#编程(十二)----------函数

类和结构 类和结构实际上都是创建对象的模板 ,每 个对象都包含数据 ,并 提供了处理和访问数据的方法。 类定义了类的每个对象 (称 为实例 )可 以包含什么数据和功能 。 例如 ,如 果 一 个类表示 一 个顾客 ,就可以定义字段 CustomerID、 FirstName、 LastNane和 Address,以 包含…

Linux很实用的命令查找软件安装目录

#whereis php #which php #php -v 查看版本号 差异自己去体会

Python 库突发 PyPI 危机!

‍‍整理 | 梦依丹出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;据 BleepingComputer 报道&#xff0c;Python 官方软件包存储库 PyPI 遭受了黑客攻击&#xff0c;攻击者通过注入垃圾邮件包的形式发起了洪水攻击。这些垃圾邮件及软件包用电影、电视节目名称命名&…

scala入门之代码补全

为什么80%的码农都做不了架构师&#xff1f;>>> 在scala的shell命令行中&#xff0c;我们可以使用像Linux那样的代码补全功能。Linux中是使用Tab键补全&#xff0c;scala的shell命令行也是使用这个键。例如&#xff0c;我们在“ssss”这个字符串上调用toUpperCase方…

pycharm第一个Python程序

print ("Hello word!"); 这是Python3.xx的语法&#xff01;

C#枚举系统安装的所有打印机

在下面的程序中我们将把系统中所安装的打印机用列表框列出来&#xff0c;同时为默认打印机设置缺省值。 在下面的程序中我们用到了两个主要的类&#xff0c;把所有的打印机列表出来用到了PrinterSettings 类,获取系统默认打印机用到了PrintDocument 类&#xff0c;下面我们就动…

编译安装linux内核步骤

编译安装linux内核步骤&#xff1a; 一.获取内核源码 源码网址&#xff1a;www.kernel.org 二.解压内核源码 首先以root帐号登录&#xff0c;然后进入/usr/src子目录。如果用户在安装Linux时&#xff0c;安装了内核的源代码&#xff0c;则会发现一个linux-x.y.z的子目录。该目录…

遏制企业数据泄露之殇,大咖切磋云安全的攻防之道

整理 | 寇雪芹出品 | AI 科技大本营&#xff08;ID:rgznai100&#xff09;5 月 7 日&#xff0c;美国最大燃油管道、东部地区油气输送主动脉 Colonial Pipeline 计算机系统被黑客入侵和勒索&#xff0c;导致美国17个州和华盛顿特区进入紧急状态。这次黑客入侵无异于一记重拳&am…

【NOIP2016】愤怒的小鸟

Description Kiana最近沉迷于一款神奇的游戏无法自拔。 简单来说&#xff0c;这款游戏是在一个平面上进行的。 有一架弹弓位于(0,0)处&#xff0c;每次Kiana可以用它向第一象限发射一只红色的小鸟&#xff0c;小鸟们的飞行轨迹均为形如y ax^2 bx的曲线&#xff0c;其中a, b是…

“智能”基石:人工智能数据标注与训练,是决定智能时代的第一步

记者 | 邓晓娟 2021年5月20日~23日&#xff0c;由深圳市科学技术协会、深圳市商务局、深圳市福田区人民政府共同指导&#xff0c;深圳市科技开发交流中心、深圳市人工智能行业协会联合主办的2021第二届深圳国际人工智能展开幕式暨智能制造创新高峰论坛在深圳会展中心&#xff0…

C#中对POP3邮件解码

Base64和下面将要介绍的Quoted-Printable都属于MIME &#xff08;多部分( multi-part)、多媒体电子邮件和 WWW 超文本的 一种编码标准&#xff0c;用于传送诸如图形、声音和传真等非文本数 据&#xff09;。MIME定义在RFC1341中。 Base64是现今在互联网上应用最多的一种编码…

php 命中算法

function hitted($rate,&$num){if (is_string($rate))$rate ( float ) $rate;if ($rate > 1)throw new ArgumentException(传入的概率值 $rate 必须是 0~1 之间的浮点数或整数(0|1)。, -1);$r 100 * $rate;$v mt_rand(1, 100);$num $v;if ($v < $r)return true;r…

iframe 数据传递

1.使用iframe是父页面与子页面的数据传递2.使用iframe 跳转部分研究处理ios兼容性 2.1 safai 会阻止iframe里的window.open()函数 采用了讲需要跳转的页面传向父页面&#xff0c;让父页面进行处理跳转 //子页面向父页面传递信息 parent.postMessage({变量名: 数据}, *);//子页面…

C#调用控制面板选项

因为C#是由Microsoft公司推出的&#xff0c;所以它对Microsoft的所有产品的兼容性与相互操作性是其它公司开发出的编程语言所不及的。Microsoft开发的Windows操作系统与C#之间的关系也非常紧密。从而实现了C#对Windows的无缝操作。 下面&#xff0c;我们就以“C#对Windows控制面…

2021 火爆技术人朋友圈的实时音视频 RTC 你 Pick 了嘛?

5月27日20点&#xff0c;第 13 期「大咖来了」&#xff01; CSDN 副总裁于邦旭、融云 CTO 任杰、即构科技副总裁刘莉&#xff0c;多方视角探讨 RTC 超级风口与机遇&#xff0c;还有众多精美礼品等你拿&#xff01; 立即戳&#xff1a;https://live.csdn.net/room/csdnnews/cn…

查询/新建/修改本地用户和组

通过ADSI新建用户user2&#xff1a; 1 #创建新用户&#xff0c;创建完成后的新用户不隶属于任何组2 $computerName$env:computername3 #定义用户名、密码、描述信息4 $username"user2"5 $userpass"password"6 $userdesc"description"7 $ADSI [A…

支付宝接入参考博客

http://www.cnblogs.com/stulzq/p/7606164.html转载于:https://www.cnblogs.com/baiqian/p/7609443.html