C#的三种复杂变量类型

前面介绍的变量都有一个基本的取值范围,除了String类型之外,每种类型的变量在内存中只占一定数量的字节,下面介绍3种用户自定义的复杂变量。

一. 枚举型

定义枚举型:关键字enum

使用方法:

enum Ename

{

Value1,value2,………….valueN

}

声明一个Ename类型的枚举变量 Ename  myenum=Ename.value;默认情况下枚举类型的类型是int,value1,value2等的值默认从0依次递增1。同时也可以使用其他类型。请看例题:


enum Days

{

Monday=1,

Tursday=2,

Wensday=3,

Thursday=4,

Friday=5,

Saturday=6,

Sunday=7

}

enum Days :short

{

}


使用

Days myday = Days.Friday;

Console.WriteLine("myday is{0}  :",myday);

输出结果如下图所示:

 

定义enum的位置

 

枚举型的基本类型可以是byte,sbyte,long ,short,ushort,int ,uint,ulong.

二. 结构体

结构体定义和使用的方法和枚举类型差不多,只是在结构体中所有定义的变量都可以有自己的值,而在一个枚举型变量的值只能是枚举所有值中的一个,在上面的例题中Days myday的值只能是一个星期中的某一天。同样我们先看一个结构体的使用过程。


struct Cloth  //结构体名字

{

public int age;//衣服使用寿命

public string sex;//合适性别

public string style;//款式

public double price;//价格

public double count;//折扣

}


Cloth mycloth;

mycloth.age = 2;

mycloth.count = 0.98;

mycloth.price = 999.99;

mycloth.sex = "man";

mycloth.style = "长裤";

输出是:

Console.WriteLine("结构体数据输出:"); 

Console.WriteLine("age={0},sex={1},style={2},price={3},count={4}",mycloth.age,mycloth.sex,mycloth.style,mycloth.price,mycloth.count);

结果是:

 

三. 数组

数组是用来存储大量类型一样而数值不一样数据的。例如在一个班级的同学信息中,用一个字符串数组来保存所有同学的姓名。


string[] StuNames = new string[5];

StuNames[0] = "国家";

StuNames[1] = "人们";

StuNames[2] = "中国";

StuNames[3] = "汉族";

StuNames[4] = "主席";

foreach (string sName in StuNames)

Console.WriteLine(sName);


输出结果图:

 

数组的使用包括数组声明和初始化,在定义数组时,数组的长度是一个常数,不能用个变数来表示:例如:int[] score = new int[7]; int []score=new int [const Size];或者int[] EnglishScore ={ 1, 5, 6, 8, 5, 7, 74 };

数组在访问之前必须初始化,如果只定义了而没有初始化则会出现错误的。

多维数组:可以根据需要定义不同维数的数字,一维,二维数组使用的比较多,而3维以上的数组使用频率就罕见了。例如定义一个二维数组来表示某个班级30个人的三门课程的成绩,double [] stuScore=new double[30][3],那么stuScore[1][2]表示第二个学生第三门课程的成绩,这些例子不多说了,大家要编程亲自体会。

时间: 2024-08-02 21:41:31

C#的三种复杂变量类型的相关文章

三种facebook的类型和案例

近日,在微博上看到有关F-commerce的讨论也越来越多了,实际上国外也有很多品牌都在facebook上进行了尝试.所谓F-commerce,也就是通过facebook来销售商品. 我对f-commerce的定义:企业品牌利用facebook用户基础,通过facebook的社交图谱和社交组件进行,使用户可以更方便的与其在facebook上的好友进行互动.分享和交流的社会化电子商务. F-commerce其实有下面三种基本的类型: 1.Facebook店铺,零售商直接在facebook开设店铺,

新的三种EBS类型解析

就在前两天,创建EBS的之后页面发生了点变化,出现三种新的类型: General Purpose (SSD) Volumes Provisioned IOPS (SSD) Volumes Magnetic Volumes 可见,底层这回底层终于升级成SSD了,而且还保留了旧款的EBS. General Purpose (SSD) 通用功能SSD 这种EBS磁盘适合做系统盘跟分区.虚拟桌面.测试环境.以及中小型数据库. 这种磁盘创建的时候,随着你输入的磁盘大小GB数,IOPS的值会发生变化,例如,

C# 基础知识 (五).变量类型和字符串处理

        这篇文章是阅读<C#入门经典(Beginning C#)>书籍里面的内容,作者Karli Watson.主要包括自己缺乏的一些C#基础知识和在线笔记使用,文章主要包括C#简单变量类型和复杂变量类型.命名规则.隐式转换和显示转换.变量字符串处理等内容,都是非常基础的知识,希望对初学者有所帮助. 一. C#简单变量类型和命名规则         简单类型组成应用程序中基本构件的类型,其中主要有以下类型: 整数类型                       sbyte(-128~1

无线路由器的三种加密方式

  无线路由器主要提供了三种无线安全类型:WPA-PSK/WPA2-PSK.WPA/WPA2 以及WEP.不同的安全类型下,安全设置项不同. 1. WPA-PSK/WPA2-PSK WPA-PSK/WPA2-PSK安全类型其实是WPA/WPA2的一种简化版本,它是基于共享密钥的WPA模式,安全性很高,设置也比较简单,适合普通家庭用户和小型企业使用.其具体设置项见下图所示: 认证类型: 该项用来选择系统采用的安全模式,即自动.WPA-PSK.WPA2-PSK. 自动:若选择该项,路由器会根据主机请

获取Filter的三种途径

一.通过CLSID [cpp] view plaincopyprint? IBaseFilter *pF = 0;   HRESULT hr = CoCreateInstance(clsid, 0, CLSCTX_INPROC_SERVER,           IID_IBaseFilter, reinterpret_cast<void**>(&pF));     二.通过系统枚举器 [cpp] view plaincopyprint? ICreateDevEnum *pSysDev

C/C++程序开发中实现信息隐藏的三种类型_C 语言

无论是模块化设计,还是面向对象设计,还是分层设计,实现子系统内部信息的对外隐藏都是最关键的内在要求.以本人浅显的经验,把信息隐藏按照程度的不同分成(1)不可见不可用(2)可见不可用(3)可见可用. 1 不可见不可用 就是说模块内部的变量.结构体.类定义对外部而已完全隐藏,外部对此一无所知.常用的实现方法就是利用不透明指针,请参见我的博文C语言开发函数库时利用不透明指针对外隐藏结构体细节. 这种方法同样适用于C++语言,一种可能的实现方式为面向接口编程. 头文件 IMyClass.h class

如何删除Linux一个目录下部分类型之外的所有文件的三种方法

有的时候,你可能会遇到这种情况,你需要删除一个目录下的所有文件,或者只是简单的通过删除除了一些指定类型(以指定扩展名结尾)之外的文件来清理一个目录. 在这篇文章,我们将会向你展现如何通过 rm. find 和 globignore 命令删除一个目录下除了指定文件扩展名或者类型的之外的文件. 在我们进一步深入之前,让我们开始简要的了解一下 Linux 中的一个重要的概念 -- 文件名模式匹配,它可以让我们解决眼前的问题. 在 Linux 下,一个 shell 模式是一个包含以下特殊字符的字符串,称

删除一个目录下部分类型之外的所有文件的三种方法

有的时候,你可能会遇到这种情况,你需要删除一个目录下的所有文件,或者只是简单的通过删除除了一些指定类型(以指定扩展名结尾)之外的文件来清理一个目录. 在这篇文章,我们将会向你展现如何通过 rm. find 和 globignore 命令删除一个目录下除了指定文件扩展名或者类型的之外的文件. 在我们进一步深入之前,让我们开始简要的了解一下 Linux 中的一个重要的概念 -- 文件名模式匹配,它可以让我们解决眼前的问题. 在 Linux 下,一个 shell 模式是一个包含以下特殊字符的字符串,称

浅谈合理利用三种页面类型 提高站点的收录

  站内的页面类型已经演化为三种,分别是静态页面.动态页面和伪静态页面.有点优化基础的人都了解,静态页面是对搜索引擎最友好的页面类型,因此这一类的页面也是最容易被搜索引擎收录的.事实真的是如此吗?笔者认为答案未必,笔者认为效果最好的就是三者合理利用,因为这三者免不了都有各自的优缺点.只有在对的地方使用他们才可以发挥出最好的效果. 一:静态页面 静态页面一直是被认为最好优化的页面,却是也是如此,相对与动态页面,静态页面更对搜索引擎更加的友好,但是我们也不能忽视一个大的问题,那就是静态页面所占用的空