今天主要学习了结构方面的知识,首先是定义,代码:

struct<typeName>

{

  <memberDeclarations>

}

struct route

{

  public orientation direction;

  public double distance;

}

定义新类型变量

route myRoute

通过句点字符访问这个组合变量中的数据成员

myRoute.direction=orientation.north;

myRoute.distance=2.5;

结构和枚举一样,在代码的主体之外声明。结构这个方面在以后用到的情况可能有恁多,在练习中会慢慢了解。

接下来介绍重要的知识:数组

首先是声明:

<baseType>[]<name>;

初始化:

(1)int[]myIntArray={5,9,10,2,99};

其中myIntArray有五个元素,每个元素被赋予一个整数值

(2)int[]myIntArray=new int[5];

第二种会给所有的数组元素赋予同一个默认值,对于数值类型来说,默认值是0

当然,还可以使用这两种的结合:

int[]myIntArray=new int[5]{5,6,7,3,8};

数组名.Length   //来确定数组中的元素个数

应用foreach循环可以定位数组中的每个元素,例子:

foreach(<baseType><name>in<array>)

{

  //can use <name>foreach element

}

这个循环不会迭代每个元素,依次把每个元素放在变量name中,且不存在访问非法元素的危险,例子:

foreach(string friendName in friendNames)

{

  Console.WriteLine(friendName);

}

这段代码的作用是输出数组<friendNames>中的所有元素

注:foreach执行只读操作

多维数组声明:

<baseType>[,,,]<name>;    //四维数组

<baseType>[,]<name>;    //二维数组

初始化:

double[,]hillHeight=new double[3,4];    //定义三行四列的数组

初始化并且赋值:

double[,]hillHeight={{1,2,3,4},{2,5,7,3},{8,45,1,3},{5,5,7,9}};

访问:

hillHeight[2,1];//将访问上式中第三个嵌套组中的第二个元素

注:从0开始索引

可用foreach循环进行访问,例子:

double[,]hillHeight={{1,2,3,4},{4,5,6,7},{5,6,7,8}};

foreach(double height in hillHeight)

{

  Console.WriteLine("{0}",height);

}

//编译出来的结果是

1

2

3

4

4

5

6

7

5

6

7

8

接下来是数组的数组

多维数组称为矩形数组,每行的元素个数相等也可以使用锯齿数组,每行都可以有不同的元素个数,也就是数组的数组

声明

int[][]jaggedIntArray;

有两种方法可以初始化数组的数组

先初始化

jaggedIntArray=new int[2][];

jaggedIntArray=new int[3];

jaggedIntArray=new int[4];

也可以使用另一种方式:

jaggedIntArray=new int[3][]{new int[]{1,2,3},new int[]{1},new int[]{1,2}};

也可以初始化并声明

foreach循环访问

int[][]array1={new int[]{1,2},new int[]{3}};

foreach(int[]array4 in array1)

{

  foreach(int divisor in array4)

    {

      Console.WriteLine(divisor);

    }

}

今天就这些啦,需要熟练。

C#学习第四天的更多相关文章

  1. 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式

    本系列文章导航 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 一.摘要 本篇文章讲解如何使用jQuery获取和操作元素的属性和CSS样式. 其中DOM属性和元素属性的区分值得 ...

  2. 前端学习 第四弹: HTML(一)

    前端学习 第四弹: HTML(一) 元素分类:块元素 内联元素 块级元素在浏览器显示时,通常会以新行来开始(和结束). 例子:<h1>, <p>, <ul>, &l ...

  3. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  4. Android Animation学习(四) ApiDemos解析:多属性动画

    Android Animation学习(四) ApiDemos解析:多属性动画 如果想同时改变多个属性,根据前面所学的,比较显而易见的一种思路是构造多个对象Animator , ( Animator可 ...

  5. 五、Android学习第四天补充——Android的常用控件(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 五.Android学习第四天补充——Android的常用控件 熟悉常用的A ...

  6. 四、Android学习第四天——JAVA基础回顾(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...

  7. MVC学习(四)几种分页的实现(3)

    在这篇MVC学习(四)几种分页的实现(2)博文中,根据URL中传入的两个参数(页码数,首页.上一页.下一页.末页的标记符)来获得对应的分页数据, 只是传入的参数太多,调用起来不太方便(标记符不能够写错 ...

  8. MyBatis学习 之 四、MyBatis配置文件

    目录(?)[-] 四MyBatis主配置文件 properties属性 settings设置 typeAliases类型别名 typeHandlers类型句柄 ObjectFactory对象工厂 pl ...

  9. 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

    [转]MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体 ...

  10. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

随机推荐

  1. [BZOJ 3110] [Zjoi2013] K大数查询 【树套树】

    题目链接: BZOJ - 3110 题目分析 这道题是一道树套树的典型题目,我们使用线段树套线段树,一层是区间线段树,一层是权值线段树.一般的思路是外层用区间线段树,内层用权值线段树,但是这样貌似会很 ...

  2. Groovy学起来,这要和GRAILS,RUNDECK打成一片

    还好,以前看过RUBY和JAVA,GROOVY感觉和它们有点相似.. 并且,我觉得这个GROOVY比SCALA要简单些(函数式编程+OBJ) 作类比,毕竟是最快的学习方法. XXX,还有必修课和证券从 ...

  3. 14.5.3 Locks Set by Different SQL Statements in InnoDB

    14.5.3 Locks Set by Different SQL Statements in InnoDB 通过不同的SQL语句设置的锁 在InnoDB中 一个锁定读, 一个UPDATE 或者一个D ...

  4. Tribles(概率)

    Description   Problem ATribblesInput: Standard Input Output: Standard Output GRAVITATION, n."Th ...

  5. HDU 2476 String painter(记忆化搜索, DP)

    题目大意: 给你两个串,有一个操作! 操作时可以把某个区间(L,R) 之间的所有字符变成同一个字符.现在给你两个串A,B要求最少的步骤把A串变成B串. 题目分析: 区间DP, 假如我们直接想把A变成B ...

  6. oracle常用命令总结

    声明:本文为博主在做项目中用到的一些常用命令,请勿转载,只为保存. oracle常用命令总结 创建表空间: --create tablespace vms--datafile 'e:\vms.dbf' ...

  7. RAII(Resource Acquisition Is Initialization)资源获得式初始化

    当在编写代码中用到异常,非常重要的一点是:“如果异常发生,程序占用的资源都被正确地清理了吗?” 大多数情况下不用担心,但是在构造函数里有一个特殊的问题:如果一个对象的构造函数在执行过程中抛出异常,那么 ...

  8. C++递归求解N个元素的所有子集

    C++递归求解N个元素的所有子集 引言: 我在复习C++遇到了设计递归函数的问题.这个例子,很好的显示了设计递归的方式,思想. 这与斐波那数列不同,这个例子更有应用意义. 问题: 试编写一个递归函数, ...

  9. 《A First Course in Probability》-chaper5-连续型随机变量-正态分布

    古典统计学问题一开始起源于赌博,让我们看这样一道有关赌博的问题. Q:A.B两人进行n局赌博,A胜的概率是p,现在设置随机变量X表示A赢的局数,当X>np,A给赌场X-np元,否则B给赌场np- ...

  10. Unicode 字符集及UTF-8 UTF-16编码

    很久以前发在他处的一篇博文,今天翻出来重新整理了一下 Unicode 字符集 共分为 17 个平面(plane), 分别对应 U+xx0000 - U+xxFFFF 的 code points, 其中 ...