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.变 ...
随机推荐
- 记录一些实用的小技巧-JS篇
1.16进制随机颜色 let color = '#'+Math.random().toString(16).slice(-6) 2.类型判断工具函数 function isType(target, t ...
- Zabbix与ELK整合实现对日志数据的实时监控
4.2.zabbix平台配置日志告警 一. ELK与zabbix有什么关系? ELK大家应该比较熟悉了,zabbix应该也不陌生,那么将ELK和zabbix放到一起的话,可能大家就有疑问了?这两个放到 ...
- flex布局中flex-grow与flex-shrink的计算方式
CSS 中的 Flex(弹性布局) 可以很灵活的控制网页的布局,其中决定 Flex 布局内项目宽度/高度的是三个属性: flex-basis, flex-grow, flex-shrink. flex ...
- Django 10
目录 cookie和session cookie session token Django中间件 自定义中间件 process_request process_response 其他方法 cookie ...
- MySQL 05
目录 事务 基本概念 四大特性(ACID) 使用方法 存储引擎 视图 基本概念 使用方法 触发器 基本概念 使用方法 存储过程 基本概念 使用方法 数据备份 备份 导入 函数 事务 基本概念 事务: ...
- C#中关于值类型和引用类型的区别
小声哔哔 一直以来对于值类型与引用类型之间的区别都不是特别清晰,直到踩了坑.... 正好最新闲暇,便想着梳理梳理这一两年来遇到的奇葩问题和解决方案,顺便就把它给拎出来记一下,免得以后再摔跤 值类型与引 ...
- redis(4)--redis集群之主从复制
集群 先来简单了解下redis中提供的集群策略, 虽然redis有持久化功能能够保障redis服务器宕机也能恢复并且只有少量的数据损失,但是由于所有数据在一台服务器上,如果这台服务器出现硬盘故障,那就 ...
- 【Java Web开发学习】Spring MVC整合WebSocket通信
Spring MVC整合WebSocket通信 目录 ========================================================================= ...
- 获取浏览器视口高度device-width
在进行移动设备web开发时,我们总会用到这样一条代码“<meta name='viewport' content='width=device-width,initial-scale=1.0' / ...
- 算法题-Z 字形变换
描述 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R ...