.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 ...
随机推荐
- java基于OpenCV的人脸识别
基于Java简单的人脸和人眼识别程序 使用这个程序之前必须先安装配置OpenCV详细教程见:https://www.cnblogs.com/prodigal-son/p/12768948.html 注 ...
- 如何把字符串数组从 Swift 传递给 C
作者:Natasha The Robot,原文链接,原文日期:2016-10-27译者:BigbigChai:校对:walkingway:定稿:CMB Swift 允许我们将原生的字符串直接传递给一个 ...
- Axure遮罩 or 灯箱
2019独角兽企业重金招聘Python工程师标准>>> 在做原型设计的时候,常常需要设计弹窗(比如confirm.alert或者弹出面板),加一个全屏的遮罩可以突出要展示的内容,效果 ...
- 《Arduino实战》——2.4 反应速度计:谁真正拥有最快的反应时间
本节书摘来异步社区<Arduino实战>一书中的第2章,第2.4节,作者:[美]Martin Evans ,Joshua Noble ,Jordan Hochenbaum,更多章节内容可以 ...
- 外媒解读Web安全核心PKI的四大致命问题
Web安全的立足根基在于复杂的PKI部署体系,但实际生活中得到正确部署的比例却非常有限,而且这一切都将随着摩尔定律的滚滚洪流灰飞烟灭. 我个人算是PKI(即公共密钥基础设施)的忠实拥护者.我热爱数学与 ...
- Clickhouse 时区转换(下)
Clickhouse 时区转换续—时区参数转换 天天加班,时间不够,主要还是我太懒,流汗,,,,,,另外如果这篇学习笔记超过100阅读量并有评论,我可能半夜也会爬起来更新的. 相信大家看我之前记录的这 ...
- C语言编程入门题目--No.13
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身.例如:153是一个"水仙花数",因为153= ...
- AWVS 安全渗透扫描
1.打开软件,点击 New Scan 2.在 website url 中输入被扫描的网址,点击 next 3.在 scanning profile 中选择测试的漏洞类型,默认选择 default(默认 ...
- 单调队列+二分 G - Queue 小阳买水果
B. Queue 这个题目会做的很偶然,突然想到的,因为我们要求离这只海象的最远的比他年轻的海象,这个年轻的海象可以用单调栈维护. 就是从前往后遍历一遍,单调栈里面存年龄从小往大的海象,这个为什么这么 ...
- nginx代理路径配置总结
一.发现问题 配置nginx代理的时候,发现location配置的路径和代理的上下文路径的组合不同,服务端接收到的uri的路径不同,导致了controller的RequestMapping匹配出现问题 ...