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

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

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

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. Asp.net Core dotnet 发布类库文件 带上注释,发布预发行版,带上所有引用

    带上注释 效果图 带上所有引用 效果图 预发行版 效果图 由于微软取消了  project.json  这个json 转而用了csproj 用于保存配置 所以懵逼很大一会 资料来源 project.j ...

  2. 【JS】308- 深入理解ESLint

    点击上方"前端自习课"关注,学习起来~ 本文来自于"自然醒"投稿至[前端早读课]. 小沈是一个刚刚开始工作的前端实习生,第一次进行团队开发,难免有些紧张.在导师 ...

  3. 了解web漏洞-sql注入

    1:为什么要学web漏洞? 作为一个运维人员,日常工作就是保障服务器和网站的业务正常运行,平时也需要对服务器的安全工作加固,说到防护攻击问题,那么久必须去了解攻击者是怎么对服务器发动的一个流程,这样才 ...

  4. JS内置对象Array之reduce()用法

    一.语法 arr.reduce(function(prev,cur,index,arr){ ... }, init); 其中, arr 表示原数组: prev 表示上一次调用回调时的返回值,或者初始值 ...

  5. 【Java Web开发学习】Spring MVC异常统一处理

    [Java Web开发学习]Spring MVC异常统一处理 文采有限,若有错误,欢迎留言指正. 转载:https://www.cnblogs.com/yangchongxing/p/9271900. ...

  6. Java并发线程池到底设置多大?

    前言 在我们日常业务开发过程中,或多或少都会用到并发的功能.那么在用到并发功能的过程中,就肯定会碰到下面这个问题 并发线程池到底设置多大呢? 通常有点年纪的程序员或许都听说这样一个说法 (其中 N 代 ...

  7. Visual Studio2019及.NET CORE3.0的安装教程

    看到很多开发.net core的初学者在安装的时候就陷入问题了,不知道安装那些东西,好吧,既然要分享知识那么就尽量做得精细一点吧,我决定从零开始为大家讲解.net core,同时有.net core工 ...

  8. python基础知识第六篇(知识点总结)

    ####################### 整理 ################# # 一.数字# int(..) # 二.字符串# replace(替换)/find/join/strip(移除 ...

  9. uni-app自定义app端的扫码界面

    记得当时是在西班牙有这样的一个需求,需要自定义扫码页面,还需要加上西班牙文,当时是在一个组件里面找到了这样的一个方法,全文大部分使用的app端的Native里面的方法,记录一下,跑路了项目代码要删库了 ...

  10. SpringBoot2基础,进阶,数据库,中间件等系列文章目录分类

    本文源码:GitHub·点这里 || GitEE·点这里 一.文章分类 1.入门基础 SpringBoot2:环境搭建和RestFul风格接口 2.日志管理 SpringBoot2:配置Log4j2, ...