.Net基础之5——复杂数据类型
(1)复习
1、变量
int double string char bool decimal
变量的使用规则:先声明再赋值最后使用
2、Camo Pascal
3、运算符
赋值运算符:=
复合赋值运算符:+=、-=、*=、/=、%=
算数运算符:+ - * / %
关系运算符:> < >= <= == !=
逻辑运算符: && || !
4、C#中的语法结构
(2)常量
声明常量的语法: const 变量类型 变量名 = 值;
const int number = ;//常量,不能被重新赋值
(3)枚举
语法: [public] enum 枚举名 {
值1,
值2,
值3,
......
} public:访问修饰符。公开的公共的,哪都可以访问。
enum:关键字,声明枚举的关键字。
枚举名:要符合Pascal命名规范。
将枚举声明到命名空间的下面,类的外面,表示这个命名空间下,所以的类都可以使用这个枚举。
枚举就是一个变量类型,只是枚举声明、赋值、使用的方式跟普通的变量类型不一样。
//声明了一个枚举Gender
public enum Gender
{
男,
女,
}
public enum Sesons
{
春,
夏,
秋,
冬
}
public enum QQState
{
OnLine,
OffLine,
Leave,
Busy,
QMe
}
class Program
{
static void Main(string[] args)
{
//变量类型 变量名=值;
Gender gender = Gender.男;
Sesons s = Sesons.春;
QQState state = QQState.Busy;
}
}
(4)枚举类型和string以及int类型之间的转换
7、所有的类型都能够转换成string类型,调用ToString()。
public enum QQState
{
OnLine,
OffLine,
Leave=,
Busy,
QMe
}
static void Main(string[] args)
{
#region 将枚举类型强转成int类型
QQState state = QQState.OnLine;
//枚举类型默认可以跟int类型互相转换,枚举类型跟int类型是兼容的。
int n = (int)state;
Console.WriteLine(n);//
Console.WriteLine((int)QQState.OffLine);//
Console.WriteLine((int)QQState.Leave);//
Console.WriteLine((int)QQState.Busy);//
Console.WriteLine((int)QQState.QMe);//
Console.ReadKey();
#endregion
static void Main(string[] args)
{ #region 将int类型转换成枚举类型(不能转换的将输出数字)
int n1 = ;
QQState state = (QQState)n1;
Console.WriteLine(state); //OffLine
Console.ReadKey();
#endregion
}
static void Main(string[] args)
{ #region 将枚举类型转换成字符串类型
//所以的类型都可以转换成string类型
QQState state = QQState.OnLine;
string s = state.ToString();
Console.WriteLine(s);
Console.ReadKey();
#endregion
}
static void Main(string[] args)
{ //将string类型转换成枚举类型(不能转换的文本将抛异常,数字不抛异常)
string s = "";
//将s转换成枚举类型
//Convert.ToString() int.Parse() int.TryParse()
//调用Parse()方法的目的就是为了让它帮助我们将一个字符串转换成对应的枚举类型
QQState state =(QQState ) Enum.Parse(typeof(QQState), s);
Console.WriteLine(state); //OnLine
Console.ReadKey();
}
//枚举练习
//提示用户选择一个在线状态,我们接受,并将用户的输入转换成枚举类型
//再次打印到控制台 Console.WriteLine("请选择您QQ的在线状态 1--OnLine 2--OffLine 5-Leave 6--Busy 7--QMe");
string s = Console.ReadLine(); //输入1
//int i = int.Parse(s);
//QQState state = (QQState)i; //输出OffLine //QQState state = (QQState)Enum.Parse(typeof(QQState), s);
//Console.WriteLine(state); //输出OffLine switch (s)
{
case "":
QQState s1 = (QQState)Enum.Parse(typeof(QQState), "OnLine");
Console.WriteLine("您选择的在线状态是{0}", s1);
break;
case "":
QQState s2 = (QQState)Enum.Parse(typeof(QQState), "OffLine");
Console.WriteLine("您选择的在线状态是{0}", s2);
break;
case "":
QQState s5 = (QQState)Enum.Parse(typeof(QQState), "Leave");
Console.WriteLine("您选择的在线状态是{0}", s5);
break;
case "":
QQState s6 = (QQState)Enum.Parse(typeof(QQState), "Busy");
Console.WriteLine("您选择的在线状态是{0}", s6);
break;
case "":
QQState s7 = (QQState)Enum.Parse(typeof(QQState), "QMe");
Console.WriteLine("您选择的在线状态是{0}", s7);
break;
}
Console.ReadKey();
(5)结构
可以帮助我们一次性声明多个不同类型的变量
语法:
[public] struct 结构名
{
成员;//字段
}
变量在程序运行时只能存储一个值,而字段可以存储多个值。
public struct Person
{
public string _name; //字段
public int _age;
public char _gender;
}
static void Main(string[] args)
{
Person zsPerson; //声明
zsPerson.name = "张三";
zsPerson.age = ;
zsPerson.gender = '男'; Person lsPerson; //声明
lsPerson.name = "李四";
lsPerson.age = ;
lsPerson.gender = '女';
}
//练习:定义一个结构类型Person,有三个成员变量,分别为姓名、性别、年龄
//性别用枚举类型
//声明两个Person类型的变量,分别表示张三 男 18岁/小兰 女 16岁
public struct Person
{
public string _name;
public int _age;
public Gender _gender;
}
public enum Gender
{
男,
女
}
static void Main(string[] args)
{
Person zsPerson;
zsPerson._name = "张三";
zsPerson._age = ;
zsPerson._gender = Gender.男;
Person laPerson;
laPerson._name = "小兰";
laPerson._age = ;
laPerson._gender = Gender.女; Console.WriteLine("{0},{1},{2}岁", zsPerson._name, zsPerson._gender, zsPerson._age);
Console.WriteLine("{0},{1},{2}岁", laPerson._name, laPerson._gender, laPerson._age);
Console.ReadKey(); }
(6)数组的定义
一次性存储多个相同类型的变量。
****数组的长度一旦固定了,就不能改变了。超出数组长度则抛出异常。
语法:
数组类型[] 数组名=new 数组类型 [数组长度] ;
int[] nums = new int[];//声明,默认初始化都为0
//赋值
for(int i=;i<nums.Length ;i++)
{
nums[i] = i;
}
for (int i = ; i < nums.Length; i++)
{
Console.WriteLine(nums[i]);
}
Console.ReadKey();
string[] str =new string []; //声明,默认初始化为null。null不等于空。 bool[] bools=new bool []; //声明,默认初始化为false。
(7)计算数组的最大值、最小值、总和、平均值
int max = int.MinValue;
int max = int.MaxValue;
(10)方法的简介
函数就是一堆代码进行重用的一种机制。
函数的语法:
[public] static 返回值类型 方法名([参数列表])
{
方法体;
}
public:访问修饰符,公开的,公共的,哪都能进行访问。
static:静态的。
返回值类型:如果不需要写返回值,写void。
方法名:Pascial。
参数列表:完成这个方法所必须要提供给这个方法的条件。
12、return
1)、返回要返回的值。
2)、立即结束本次的方法。
方法调用的语法:
类名.方法名([参数]);
/// <summary>
/// 计算两个整数之间的最大值并将最大值返回
/// </summary>
/// <param name="n1">第一个整数</param>
/// <param name="n2">第二个整数</param>
/// <returns>将最大值返回</returns>
public static int GetMax(int n1, int n2)
{
return n1 > n2 ? n1 : n2;
}
static void Main(string[] args)
{
//计算两个整数之间的最大值
int max= Program.GetMax(, );
Console.WriteLine(max);
Console.ReadKey();
}
(11)方法的细节问题
.Net基础之5——复杂数据类型的更多相关文章
- Java02-java语法基础(一)数据类型
Java02-java语法基础(一)数据类型 一.语法基础 语句:以分号(;)结束 System.out.println(“Hello World !”); 语句块:用一组花括号({})括起来 { … ...
- Java基础(二) 基本类型数据类型、包装类及自动拆装箱
我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long ...
- Java编程基础——常量变量和数据类型
Java编程基础——常量变量和数据类型 摘要:本文介绍了Java编程语言的常量变量和数据类型. 常量变量 常量的定义 一块内存中的数据存储空间,里面的数据不可以更改. 变量的定义 一块内存中的数据存储 ...
- openresty开发系列13--lua基础语法2常用数据类型介绍
openresty开发系列13--lua基础语法2常用数据类型介绍 一)boolean(布尔)布尔类型,可选值 true/false: Lua 中 nil 和 false 为"假" ...
- MySQL基础(1) | 数据类型
MySQL基础(1) | 数据类型 数值类型 TINYINT #小整数值,1 字节,有符号(-128,127),无符号(0,255) SMALLINT #大整数值,2 字节 MEDIUMINT #大整 ...
- c# 基础部分 (基本数据类型-- 表达式)
一 基础部分 1.常用的基本数据类型 int longing(长整) shortint(短整) string(文本型) char(字符型) bool (布尔型) false true 2.常量于变量 ...
- C++基础回顾1(数据类型, 控制语句, 数组)
最近两天打开本科学校的C++教材,快速回顾了一下C++方面的内容.虽然书本内容比较基础,但是还是有些知识点值得自己强化记忆.分几篇文章,加上自己的理解记录如下. 先回顾面向过程的部分. C++数据类型 ...
- Java学习之旅基础知识篇:数据类型及流程控制
经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...
- python基础之五大标准数据类型
学习一门语言,往往都是从Hello World开始. 但是笔者认为,在一个黑框框中输出一个"你好,世界"并没有什么了不起,要看透事物的本质,熟悉一门语言,就要了解其底层,就是我们常 ...
- python基础(二)-------数据类型
python开发基础篇(二)数据类型 python数据类型有: 1.数字 1.只能存放一个值 2.一经定义,不可更改 3.直接访问 主要的分类为:整型,长整型,(python2有长整型的概念Pytho ...
随机推荐
- 【Linux常见命令】vimdiff命令
在类nuix平台,我们希望对文件之间的差异之间快速定位,希望能够很容易的进行文件合并……. 可以使用Vim提供的diff模式,通常称作vimdiff,就是这样一个能满足所有这些需求,甚至能够提供更多的 ...
- element UI排坑记(一):判断tabs组件是否切换
之所以将这个问题列在排坑记之中,是因为官方组件的一个属性颇有些隐蔽,这个问题曾经折腾了本人较多时间,始终思维固着,且使用搜索引擎也不容易搜索到答案,故记之.然而实际解决却是相当简单的. 一.问题描述 ...
- resetlogs 打开数据库时新生成日志位置问题
若系统中缺少联机日志,以resetlogs方式重建控制文件,那么当我们以alter database open resetlogs方式打开数据库时,新生成的联机日志会位于何处? 一:下面分别讨论几种情 ...
- JAVA第一次blog总结
JAVA第一次blog总结 0.前言 大一下学期我们开展了OPP这门课程,这也是我们第一次接触到JAVA.与上学期我们在学校里学C语言不同的是,这学期由于疫情原因我们是以网课的方式在学习.在学习中我发 ...
- UVA352 The Seasonal War
本文为UserUnknown原创 题目本身不难理解,就是深搜(或广搜,有可能以后会加在这里). 但是洛谷的题目中没有截到输入输出的格式,下面是我从UVA复制下来的样例: Sample input 6 ...
- MySQL——视图/触发器/事务/存储过程/函数/流程控制
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- java结合email实现自动推送
1.获取表中最后一条数据 public static String demo() throws SQLException { String sql = "select * FROM baox ...
- Unity2019.3缺少Cinemachine插件/AssetStore搜索不到
Unity2019.1版本都还自带Cinemachine,到2019.3就没有了(原因暂时未知),PackageManager里没有,到资源商店里搜索也找不到 解决方法: Windows>Pac ...
- u-boot 移植(二)创建新平台的板级支持
u-boot 移植(二)创建新平台的板级支持 soc:s3c2440 board:jz2440 uboot:u-boot-2016.11 toolchain:gcc-linaro-7.4.1-2019 ...
- Git使用教程之从远程库克隆项目(四)
我们接下来在本地新建一个文件夹,把刚刚github上创建的项目克隆下来,操作步骤如下: 1.克隆项目: 找到github上面的SSH地址,如图: 开始克隆: $ git clone git@githu ...