.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 ...
随机推荐
- layui模块化加载Echarts图表v4.2.1
layui.use(['jquery','echarts'], function () { var $ = layui.$; //记得这是dom对象不是JQ对象,需要转换 echarts = layu ...
- Forrester:开源APM发展势头强劲
在企业的运营团队看来,系统的稳定性和可靠运行时间是至关重要的.因此,企业更乐意向能够负责的技术提供商购买开发完整的.有文档记录的,并且有售后支持的工具或软件. 一般来说,运营团队没有额外精力来应付新奇 ...
- P2480 [SDOI2010]古代猪文
P2480 [SDOI2010]古代猪文 比较综合的一题 前置:Lucas 定理,crt 求的是: \[g^x\bmod 999911659,\text{其中}x=\sum_{d\mid n}\tbi ...
- dij-spfa乱搞
以前见过一篇另类堆优化dij的题解,然而找不到了 那位作者称它为dij-spfa(大概是这个意思,然而确实很形象 这方法比较玄学,正确性没有严格证出来,然而对拍是验证猜想的最好途径 不过也可能并不玄学 ...
- muduo网络库源码学习————日志类封装
muduo库里面的日志使方法如下 这里定义了一个宏 #define LOG_INFO if (muduo::Logger::logLevel() <= muduo::Logger::INFO) ...
- python的with
with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源. 比如文件使用后自动关闭.线程中锁的自动获取和释放等. with open('test.t ...
- .NET Core+QQ第三方授权登录
安装包 dotnet add package AspNet.Security.OAuth.QQ 接上文GitHub第三方授权登录 申请过程不介绍了,申请者资料,个人也是可以申请成功的. 这时候有二个参 ...
- win10卸载多余应用-通过命令行卸载
Win10 APP 卸载方式和明细,网络最全.直接包含了编辑好的文件,可以打开编辑或直接删除,部份APP可卸载,但注释了,各位可以看情况是否删除.直接把代码复制保存扩展名为“ps1”即可直接运行,这是 ...
- Coursera课程笔记----计算导论与C语言基础----Week 8
C语言中的运算成分(Week 8) 赋值运算符 "="赋值运算符 给赋值号左边的变量赋予数值 在变量定义的同时可以为变量赋初值 要点一:两面类型不同 若=两边的类型不一致,赋值时要 ...
- 【MySQL基础总结】运算符的使用
运算符的使用 算数运算符 比较运算符 结果只能为TRUE(1)或FALSE(0) 逻辑运算符 运算符的优先级 可以通过括号改变优先级 示例 算数运算符 比较运算符 逻辑运算符