变量的作用:为了更好的管理内存数据,不同类型的数据存放在不同的内存块中。

变量的特点:不同数据类型占用的存储空间大小不一样。

变量的意义:内存地址是一串十六进制数,非常不好记忆,通过变量可以快速找到数据。

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#语法基础----变量 符号 数据转换的更多相关文章

  1. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  2. python基础语法(变量与数据类型)

    python基础语法(变量与数据类型) 一.python变量 python中的变量不需要声明.每个变量在使用钱都需要赋值,变量赋值以后,该变量才会被创建 在python中,变量就是变量,它没有类型,我 ...

  3. Java基础语法(2)-变量

    title: Java基础语法(2)-变量 blog: CSDN data: Java学习路线及视频 1.什么是变量? 变量的概念 内存中的一个存储区域 该区域的数据可以在同一类型范围内不断变化 变量 ...

  4. GO语言基础(结构+语法+类型+变量)

    GO语言基础(结构+语法+类型+变量) Go语言结构 Go语言语法 Go语言类型 Go语言变量       Go 语言结构 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 &a ...

  5. Java基础语法01——变量与运算符

    本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).

  6. javascript基础语法备忘录-变量和数据类型

    //javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...

  7. 前端学习笔记--js概述与基础语法、变量、数据类型、运算符与表达式

    本篇记录js的概述与基础语法.变量.数据类型.运算符与表达式 1.概述与基础语法 2.变量 举例: 3.数据类型 4.运算符与表达式

  8. 了解JavaScript的语法基础,值和变量

    通过JavaScript语法基础学习了解到1.怎么使用js/*通常js的引入和css一样,分为内部,外部和行内引入,执行自上而下,有着先后顺序*/:2.js的语法/*2.1js是用字母,数字.特殊字符 ...

  9. Python基础部分:5、 python语法之变量与常量

    目录 python语法之变量与常量 一.什么是变量与常量 1.什么是变量 2.什么是常量 二.变量的基本使用 1.代码中如何记录事物状态 2.变量使用的语法结构与底层原理 3.变量名的命名规范 4.变 ...

随机推荐

  1. Python实现截图功能你肯定不会吧?【面试必学】

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:CyborgLin python实现截图功能. windows环境下.需 ...

  2. Java_零碎知识回顾

    封装的理解 1.隐藏实现细节,控制对象的访问权限:对外提供公共方法: 隐藏:private 本类可见 继承的理解 ①父类有共性的属性与方法:子类只需要继承,扩展自己独有的属性方法即可,实现了代码的可复 ...

  3. Java修饰符public,protected,default,private访问权限

    public 具有最大的访问权限.所有类可访问. protected 主要是用来保护子类.自身.子类及同一个包中类可以访问 default 没有加修饰符的.有时候也称为friendly,它是针对本包访 ...

  4. Java中Object类常用的12个方法,你用过几个?

    前言 Java 中的 Object 方法在面试中是一个非常高频的点,毕竟 Object 是所有类的“老祖宗”.Java 中所有的类都有一个共同的祖先 Object 类,子类都会继承所有 Object ...

  5. round分析

    Python 所谓的奇进偶弃,因为浮点数的表示在计算机中并不准确,用的时候可能要注意一下. 测试如下 print() 由运行得出结论: 当小数点左边为偶数:小数点右边X<6,舍 当小数点左边为偶 ...

  6. python并发之多进程

    #mutiprocessing模块 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程.Pytho ...

  7. Java设计模式整理

    一.创建型模式 1.抽象工厂模式(AbstractFactory): 提供一个接口, 用于创建相关或依赖对象的家族, 而不需要指定具体类. 案例:https://www.cnblogs.com/lfx ...

  8. 织女星开发板使用RISC-V核驱动GPIO

    前言 织女星开发板是OPEN-ISA社区为中国大陆地区定制的一款体积小.功耗超低和功能丰富的 RISC-V评估开发板,基于NXP半导体四核异构RV32M1主控芯片. 两个RISC-V核:RI5CY + ...

  9. Rancher 2.3.3发布!默认支持K8S 1.16

    2019年11月28日,Rancher Labs发布了Rancher全新版本2.3.3,该版本默认支持Kubernetes1.16,此外还带来了其他功能与优化. 目前,Rancher的Latest和S ...

  10. SpringCloud-使用熔断器防止服务雪崩-Ribbon和Feign方式(附代码下载)

    场景 SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...