C#语法基础----变量 符号 数据转换
变量的作用:为了更好的管理内存数据,不同类型的数据存放在不同的内存块中。
变量的特点:不同数据类型占用的存储空间大小不一样。
变量的意义:内存地址是一串十六进制数,非常不好记忆,通过变量可以快速找到数据。
1.要确定存储的数据的类型。
2.给这块空间起一个有意义的名字,方便我们使用空间中的内容。
存储变量的语法:
变量类型 tagName;
tagName = value;
C#中数据类型(数值类型/引用类型):
1)整数类型int:只能存储整数,不能存储小数。
2)小数类型double:既能存储小数,又能存储整数。
3)金钱类型decimal:用来存储金钱,值后面加m。
4)字符串类型string:用来存储文本,也可存储空,要用“”括起来。
5)字符类型char:用来存储单字符,不能为空。
值类型默认是0
下面介绍两个特殊的值类型(NaN和Infinity)
记住一条结论:Infinity*0,结果是0.而NaN*0的结果认识NaN。
下面描述一下C#和PLC中数据类型的取值范围,它们还是有许多不同之处的,如下表:
C# | PLC | |
int | -231~231 | -32767~32768 |
double | +-5*10-324~+-1.7*10308 | (DINT)-2147483648~-2147483648 |
decimal | (-7.9*1028~7.9*1028)/100~28 | |
string | 不适用 | 不适用 |
char | 不适用 | 不适用 |
变量的使用规则:使用变量,要先声明后赋值在使用
变量的命名规则:
(1)必须以字母或“_”开头,不要以数字开头
(2)后面面可以跟任意字母,数字和_。
注意:1.变量名不要有C#关键字重复。
2.C#中大小写敏感。
3.同一个变量不要重复定义。
变量命名的方法:
1)Camel骆驼命名规则:要求变量名单词首字母小写,其余单词首字母大写,多用于变量或字段的命名。
2)Pascal命名规则:要求每个单词首字母大写,多用于类或方法命名。
C#中及格常用符号:
(1)“+”号:1.当“+”两边有一个是字符串时候,起连接作用。
2.“+”两边是数字是相加。
(2){}占位符:使用方法先挖坑,在填坑。输出顺序按照挖坑顺序输出。
Console.WriteLine("课程编号:"+courseID+"课程名称:"+courseName); //+起到连接作用 Console.WriteLine("课程编号:{0}课程名称:{1}".courseID,coureName);//{}占位符的用法 Console.WriteLine($"课程编号:{courseID},课程名称:{courseName}");//Framework 4.6语法糖
代码第5行的语法糖称为字符串的插值,这在.NET Framework框架中,比“+”的效率高很多,连接符+会占用很多内存。
注意:挖几个坑,填几个坑,多填没有效果,少坑抛异常。
异常:语法上没有任何错误,只不过运行期间,由于某些原因出现了问题,程序不在正确运行。
C#中的转义符:指的就是一个‘\’加上一个特殊的字符,组成了一个具有特殊意义的字符。
(1)\n:表示换行。(适用于console/winform/ios系统)
(2)\":表示一个英文半角双引号。
(3)\t:表示一个tab键的空格。4个或8个空格,空格多少取决于编译器。
(4)\b:表示一个退格键,删除前一个字符,放在字符串的两边没有效果。
(5)\r\n:表示换行(windows系统适用)
(6)\\:表示一个\。
@符号的意义:1)取消\在字符串中的转移作用。
2)将字符串按照原格式输出。
C#中的强制类型转换(显式)和自动转换(隐式)
显示的给变量赋以恶初始值,是我们编程的一个好习惯。
Console.Write("请输入你的年龄");
int age=int.Parse(console.ReadLine());
3 int age=string.ConverttoINT32(console.ReadLine());
这里还要说一点,我们已经知道,string类型我们可以赋空,语法有以下几种方式
1)string tag="";
2) string tag=null;
3) string tag=string.Empty;
下面我们介绍一个与变量对应的----常量
当我们希望某一个值不希望被人修改,可以使用常量。
常见应用:数学计算,上位机某些设备参数的定义。
常量的定义要求:
(1)必须在定义的时候就初始化(赋值)
(2)常量的名字全部大写(建议)
(3)常量的命名要有意义。
语法:const Type tag = value;
枚举的使用
枚举的作用:1.可以表示一组描述的名称,还可以有对应的“整数值”(默认从0开始)
2.定义一组有限制,方便我们使用(个数不要太多)
枚举的语法:
[public] enum 枚举名
{
值1,
值2,
值3...... //最后的","可加可不加
}
public enum Gender
{
Male,Female
} static void main(string[] args)
{
Gender gender=Gender.Maie; //定义枚举类型
Conssole.WriteLine(gender);
}
补充:若要获得int类型,(int)gender;支持显示强制转换,枚举类型和int类型是兼容的。
public:访问修饰符,公开的,哪里都可以访问
枚举名:符合Pascal命名规范。
将枚举声明在命名空间下,类的上面。
将enum类型强制转换成string类型
所有的类型都能转换成string类型,调用ToString()方法去转换。
比较麻烦的是将string类型转换成enum类型
这里先介绍三种转换的方法
(1)Convert.ToType()
(2)Type.TryParse()
(3)Type.Parse()
调用Parse()方法的目的就是为了让他帮助我们将一个字符串转换成对应的枚举类型。
语法:(要转换的枚举类型)Enum.Parse(Typeof(要转换的枚举类型),“要转的字符串”);
举例如下
string s = "";
QQState state = (QQState)Enum.Parse(Typeof(QQstate),s);
所以我们可以得到一下一条结论:
枚举类型默认和int类型相互兼容,所以可以通过强制类型转换语法转化。enum和string亦可。如果转换的字符串是数字,就算
枚举中没有,也不会抛异常。如果转换的是字符串文本,如果枚举中没有,则会抛异常。
练习:提示用户选择一个在线状态,接受,并将用户输入转换成枚举类型,打印到控制台中。
Console.WriteLine("请选择您的QQ在线状态 1--OnLine 2--OffLine 3--Leave 4--Busy 5--QMe");
string input = Console.ReadLine(); switch(input)
{
case "":QQState s1 = (QQState )Enum.Parse(Typeof(QQState),input);
Console.WriteLine("您选择的在线状态是{0}",s1);
break; case "":QQState s2 = (QQState )Enum.Parse(Typeof(QQState),input);
Console.WriteLine("您选择的在线状态是{0}",s2);
break; case "":QQState s3 = (QQState )Enum.Parse(Typeof(QQState),input);
Console.WriteLine("您选择的在线状态是{0}",s3);
break; case "":QQState s4 = (QQState )Enum.Parse(Typeof(QQState),input);
Console.WriteLine("您选择的在线状态是{0}",s4);
break; case "":QQState s5 = (QQState )Enum.Parse(Typeof(QQState),input);
Console.WriteLine("您选择的在线状态是{0}",s5);
break;
}
Console.Readkey();
C#中常用的运算符和数据转换
(1)赋值运算符“=”
(2)算数运算符:+ - * / % ++ --
其中要说明一点%适用于所有值类型,且结果不一定为整数。
自动类型转换
1.两种类型必须是值类型(int和double/foalt)
2.目标类型取值范围必须大于要转换的类型,例如double和int
显示类型转换的几种方法:
(1)类型直接转换(值类型之间)
(2)Parse转换(string--->值类型)
(3)Convert万能转换器(任意类型之间)
需要指出的是object类型的转换方法,需要一步一步转换,不能一步到位。
例如: object a = 10.25;
int result = (int)(double)a;
string--->值类型:对于Parse()方法来说要求字符串的格式必须符合目标类型的有效形式。
例如:int a = int.Parse("20.5")这样是会抛异常的。
避免上一个问题的异常就是使用Convert()方法。
下面介绍一种特殊情况:
如果小数部分为0.5,整数部分若为偶数保留,舍掉小数部分,若为奇数,则进一位。
最后我们讲一讲关系运算符和逻辑运算符
关系运算符是用来描述两个事物之间的关系的
关系运算符:> < <= >= == !=
逻辑运算符:&& || !
C#语法基础----变量 符号 数据转换的更多相关文章
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
- python基础语法(变量与数据类型)
python基础语法(变量与数据类型) 一.python变量 python中的变量不需要声明.每个变量在使用钱都需要赋值,变量赋值以后,该变量才会被创建 在python中,变量就是变量,它没有类型,我 ...
- Java基础语法(2)-变量
title: Java基础语法(2)-变量 blog: CSDN data: Java学习路线及视频 1.什么是变量? 变量的概念 内存中的一个存储区域 该区域的数据可以在同一类型范围内不断变化 变量 ...
- GO语言基础(结构+语法+类型+变量)
GO语言基础(结构+语法+类型+变量) Go语言结构 Go语言语法 Go语言类型 Go语言变量 Go 语言结构 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 &a ...
- Java基础语法01——变量与运算符
本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).
- javascript基础语法备忘录-变量和数据类型
//javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...
- 前端学习笔记--js概述与基础语法、变量、数据类型、运算符与表达式
本篇记录js的概述与基础语法.变量.数据类型.运算符与表达式 1.概述与基础语法 2.变量 举例: 3.数据类型 4.运算符与表达式
- 了解JavaScript的语法基础,值和变量
通过JavaScript语法基础学习了解到1.怎么使用js/*通常js的引入和css一样,分为内部,外部和行内引入,执行自上而下,有着先后顺序*/:2.js的语法/*2.1js是用字母,数字.特殊字符 ...
- Python基础部分:5、 python语法之变量与常量
目录 python语法之变量与常量 一.什么是变量与常量 1.什么是变量 2.什么是常量 二.变量的基本使用 1.代码中如何记录事物状态 2.变量使用的语法结构与底层原理 3.变量名的命名规范 4.变 ...
随机推荐
- Ceph 架构以及原理分析
一.架构 Ceph在一个统一的系统中独特地提供对象,块和文件存储. Ceph高度可靠,易于管理且免费. Ceph的强大功能可以改变您公司的IT基础架构以及管理大量数据的能力. Ceph提供了非凡的可扩 ...
- 使用ExcelPackage进行Excel报表
Nuget包名为 epplus.core 命名空间OfficeOpenXml string localFileName = path + Path.DirectorySeparatorChar + f ...
- 第三次作业-Python网络爬虫与信息提取
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 过程. 5.写一篇不少于100 ...
- cuckoo沙箱技术分析全景图
从事信息安全技术行业的小伙伴们都知道沙箱技术(有些也称沙盒),用来判断一个程序或者文件是否是恶意的病毒.木马.漏洞攻击exp或其他恶意软件.其原理简单来说就是提供了一个虚拟的环境,把分析目标放到这个虚 ...
- .NET Core Razor Pages中ajax get和post的使用
ASP.NET Core Razor Pages Web项目大部分情况下使用继承与PageModel中的方法直接调用就可以(asp-page),但是有些时候需要使用ajax调用,更方便些.那么如何使用 ...
- net core 3.1 跨域 Cors 找不到 “Access-Control-Allow-Origin”
首先在ConfigureServices添加 public void ConfigureServices(IServiceCollection services) { services.AddCors ...
- 简单看看es6解构赋值
哎,我真的是太难了,今天就被这个解构赋值(也可以叫做析构,貌似析构是在c++中的,所以我这里叫做解构赋值吧)弄的我很烦,本来以为很容易的,结果还是弄了好久...就总结一下解构吧! 1.解构的基本使用 ...
- JDK1.8新特性-Lambda表达式
Lambda 表达式 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性. Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中). 使用 Lambda 表 ...
- java打字游戏-一款快速提升java程序员打字速度的游戏(附源码)
一.效果如图: 源码地址:https://gitee.com/hoosson/TYPER 纯干货,别忘了留个赞哦!
- 最短路径之Dijsktra算法(python)
定义: 起始位置:A 终止位置:F 持久集合:permanent = set() 暂时集合:temporary = set() 首先将起始位置A加入永久集合,并将A的距离设为0, 此时遍历A的邻接节点 ...