今天由于工作上的需要, 改了几行C#  的代码,

发现有一些细微的语法区别,与C++,

像switch语句那样,

我一般不会在default后面加上break,语句,

可是发现如果不加上的话,就会报下面的错误

Error 1 Control cannot fall through from one case label ('default:') to another

...

另外,还有定义一下二维数组的话,,,,

不能直接int a[2][3]这样,

需要

int [,] convertTable = new int [24,3] {
{ 001 , 001 , 001 } ,
....
{ 100 , 100 , 100 }
};

一开始还真有点不习惯

下面是摘自其它网友的提示

from

http://blog.csdn.net/qi_jianzhou/article/details/513462

分类: C#基础教程2005-10-22 09:46 1729人阅读 评论(0) 收藏 举报

1.数组

CSharp 的数组从 0 开始

声明数组时 "[ ]"放在类型名的后面,而不能放在标示符的后面,放在标示符的后面是别一种语法

如 int[] table  而不是  int table[]

另一细节是数组的大小不是其类型的一部分,而在C语言中数组的大小确是数组类型的一部分,可以声明一个数组

关为它分配 int (觉得这里好像说的不对,应该是"类型")  对象的任意数组, 不管长度如何

如:

int[] table;

table=new int[10];

table=new int[20];

table= new int[30];

现在的 table 是有 30 个元素了

数组可以声明为一维,二维,交错数组,如

int[] num=new int[10];                   //声明一个一维数组

int[,] num2=new int[4,5];                //声明一个二维数组

int[][] num3=new int[3];                   //声明一个交错的数组

for (int x=0;x<num3.Length;x++)

{

num3[x]=new int[4];             //相当于声明的一个 [3,4] 的数组

}

还可以有更大的数组。例如,可以有三维的矩形数组:

甚至可以将矩形数组和交错数组混合使用。例如,下面的代码声明了类型为 int 的二维数组的三维数组的一维数组。

数组的初始化

数组初始化时可以 int[] num=new int[4]{1,2,3,4}

此处注意的是初始化的元素个数得和指定 int[4] 保存一至,否则会出错

初始化数组 
C# 通过将初始值括在大括号 ({}) 内为在声明时初始化数组提供了简单而直接了当的方法。下面的示例展示初始化不同类型的数组的各种方法。

注意 如果在声明时没有初始化数组,则数组成员将自动初始化为该数组类型的默认初始值。另外,如果将数组声明为某类型的字段,则当实例化该类型时它将被设置为默认值 null。 
一维数组 
int[] numbers = new int[5] {1, 2, 3, 4, 5}; 
string[] names = new string[3] {"Matt", "Joanne", "Robert"}; 
可省略数组的大小,如下所示:

int[] numbers = new int[] {1, 2, 3, 4, 5}; 
string[] names = new string[] {"Matt", "Joanne", "Robert"}; 
如果提供了初始值设定项,则还可以省略 new 运算符,如下所示:

int[] numbers = {1, 2, 3, 4, 5}; 
string[] names = {"Matt", "Joanne", "Robert"}; 
多维数组 
int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} }; 
string[,] siblings = new string[2, 2] { {"Mike","Amy"}, {"Mary","Albert"} }; 
可省略数组的大小,如下所示:

int[,] numbers = new int[,] { {1, 2}, {3, 4}, {5, 6} }; 
string[,] siblings = new string[,] { {"Mike","Amy"}, {"Mary","Albert"} }; 
如果提供了初始值设定项,则还可以省略 new 运算符,如下所示:

int[,] numbers = { {1, 2}, {3, 4}, {5, 6} }; 
string[,] siblings = { {"Mike", "Amy"}, {"Mary", "Albert"} }; 
交错的数组(数组的数组) 
可以像下例所示那样初始化交错的数组:

int[][] numbers = new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} }; 
可省略第一个数组的大小,如下所示:

int[][] numbers = new int[][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} }; 
-或-

int[][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} }; 
请注意,对于交错数组的元素没有初始化语法。

访问数组成员 
访问数组成员可以直接进行,类似于在 C/C++ 中访问数组成员。例如,下面的代码创建一个名为 numbers 的数组,然后向该数组的第五个元素赋以 5:

int[] numbers = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; 
numbers[4] = 5; 
下面的代码声明一个多维数组,并向位于 [1, 1] 的成员赋以 5:

int[,] numbers = { {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10} }; 
numbers[1, 1] = 5; 
下面声明一个一维交错数组,它包含两个元素。第一个元素是两个整数的数组,第二个元素是三个整数的数组:

int[][] numbers = new int[][] { new int[] {1, 2}, new int[] {3, 4, 5} 
}; 
下面的语句向第一个数组的第一个元素赋以 58,向第二个数组的第二个元素赋以 667:

numbers[0][0] = 58; 
numbers[1][1] = 667; 
数组是对象 
在 C# 中,数组实际上是对象。System.Array 是所有数组类型的抽象基类型。可以使用 System.Array 具有的属性以及其他类成员。这种用法的一个示例是使用“长度”(Length) 属性获取数组的长度。下面的代码将 numbers 数组的长度(为 5)赋给名为 LengthOfNumbers 的变量:

int[] numbers = {1, 2, 3, 4, 5}; 
int LengthOfNumbers = numbers.Length; 
System.Array 类提供许多有用的其他方法/属性,如用于排序、搜索和复制数组的方法。

对数组使用 foreach 
C# 还提供 foreach 语句。该语句提供一种简单、明了的方法来循环访问数组的元素。例如,下面的代码创建一个名为 numbers 的数组,并用 foreach 语句循环访问该数组:

int[] numbers = {4, 5, 6, 1, 2, 3, -2, -1, 0}; 
foreach (int i in numbers) 

System.Console.WriteLine(i); 

由于有了多维数组,可以使用相同方法来循环访问元素,例如:

int[,] numbers = new int[3, 2] {{9, 99}, {3, 33}, {5, 55}}; 
foreach(int i in numbers) 

Console.Write("{0} ", i); 

该示例的输出为:

9 99 3 33 5 55 
不过,由于有了多维数组,使用嵌套 for 循环将使您可以更好地控制数组元素。

C#的switch与二维数组.....的更多相关文章

  1. [Day4]Switch语句、数组、二维数组

    1.选择结构switch (1)格式 switch (表达式){ case 目标值1: 执行语句1; break; case 目标值2: 执行语句2; break; ...... case 目标值n: ...

  2. 用C语言关于学生管理系统的几种实现方法(一位数组,二维数组,指针,结构体)

    一位数组: #include <stdio.h> #include<string.h> #define N 5 void luru(float s[],int n); void ...

  3. C++ 二维数组(双重指针作为函数参数)

    本文的学习内容参考:http://blog.csdn.net/yunyun1886358/article/details/5659851 http://blog.csdn.net/xudongdong ...

  4. 【原创】只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(四)

    全系列Index: [原创]只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(一) [原创]只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(二) [原创]只学到二维数组和结构体,不用链表也能 ...

  5. 【Java学习笔记之八】java二维数组及其多维数组的内存应用拓展延伸

    多维数组声明 数据类型[][] 数组名称; 数据类型[] 数组名称[]; 数据类型数组名称[][]; 以上三种语法在声明二维数组时的功能是等价的.同理,声明三维数组时需要三对中括号,中括号的位置可以在 ...

  6. C语言二维数组实现扫雷游戏

    #include<stdio.h> //使用二维数组实现 扫雷 int main() { char ui[8][8]={ '+','+','+','+','+','+','+','+', ...

  7. Arrays工具、二维数组以及LeetCode练习题

    1 Arrays PS:Arrays位于java.util包下 int binarySearch(type[] a, type key); 使用二分法查询 key 元素在 a 数组中的索引,如果数组不 ...

  8. 二维数组 \n是换行 三目运算符 if语句示例

    今天学习了二维数组 // 1.定义数组array并赋值 // var arr1=[1,2,3,4,5,]; // alert(arr1[2]); 数组的长度就是值的多少 获取数值的长高度=最大下标+1 ...

  9. 第3章 Java数组(上): 一维数组和二维数组

    3.数组及排序算法(2天) 3.1 数组的概述 2课时 3.2 一维数组的使用 3课时 3.3 多维数组的使用 3课时 3.4 数组中涉及到的常见算法 3课时 3.5 Arrays工具类的使用 3课时 ...

随机推荐

  1. 【redis】03list类型

    list类型 redis的list类型是一个链表结构,他的主要功能是push.pop.获取一个范围的所有值等等一些操作, 咱们push什么意思,push是不是相当于咱们php里面的array_push ...

  2. hdoj 1875 畅通工程再续

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1875 //9403289 2013-10-24 17:00:49 Accepted 1875 62M ...

  3. LightOj 1096 - nth Term (矩阵快速幂,简单)

    题目 这道题是很简单的矩阵快速幂,可惜,在队内比赛时我不知什么时候抽风把模版中二分时判断的 ==1改成了==0 ,明明觉得自己想得没错,却一直过不了案例,唉,苦逼的比赛状态真让人抓狂!!! #incl ...

  4. SPOJ 3693 Maximum Sum(水题,记录区间第一大和第二大数)

    #include <iostream> #include <stdio.h> #include <algorithm> #define lson rt<< ...

  5. grunt下cssmin的配置参数

    每个目标的具体设置,需要参考该模板的文档minify目标的参数具体含义如下: expand:如果设为true,就表示下面文件名的占位符(即*号)都要扩展成具体的文件名. cwd:需要处理的文件(inp ...

  6. hdu 2481 Toy

    好题!!!没话说…… 用到的知识面很多,这题的难点在于公式的推导. 原始推导过程见:http://hi.baidu.com/spellbreaker/item/d8bb3bda5af30be6795d ...

  7. SQO2008配置管理工具服务显示远程过程调用失败

    前两天,装了VS2012后,打开SQL2008配置管理工具,发现SQL服务名称里什么也没有,只有一个提示:(如图) 卸载了一个叫"Microsoft SQL Server 2012Local ...

  8. amd(超微半导体公司(英语:Advanced Micro Devices, Inc.,缩写:AMD))

    公司名称 AMD(超微半导体公司)   经营范围 CPU.显卡.主板等电脑硬件设备 AMD公司专门为计算机.通信和消费电子行业设计和制造各种创新的微处理器(CPU.GPU.APU.主板芯片组.电视卡芯 ...

  9. java:继承

    一.继承: java只支持单继承,一个子类只能继承一个父类,使用继承是为了减少类的重复代码,且父类的构造函数不能被子类继承. 当两个类里面有相同的属性或方法,就应该考虑使用继承解决重复代码了. 继承的 ...

  10. eclipse 中忽略jsp, xml文件中的报错信息

    有的时候, 在eclipse中, jsp, xml 文件时运行的好好的, 可是就是在eclipse中报错, 虽然不影响功能, 但看起来很烦, 去掉这些错误警告的方法是: Windows-Prefere ...