C# 变量入门趣谈

Posted Nemo_XP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 变量入门趣谈相关的知识,希望对你有一定的参考价值。

变量是初学一门计算机语言最先接触到的一个概念了。语义很简单,就是会变化的量。可是如何生动形象的理解它呢?

我们试想这么一个场景。
你是一个男生,有一天,和一个男性朋友一起开了一间双人床房间,别问我为啥不是女生,我也不知道。酒店的服务员就给你拿了一张房卡,说你们的房号是A520。
这个场景中,我们可以理解为,整个计算机运行的内存是一个大旅馆,每当有一个顾客过来开N个房见的时候(某程序想要申请一块内存来存数据),这个时候作为旅馆服务员的你(程序员),直接去给顾客开了N个房间(程序员通过指令声明一个变量在内存中开辟一块连续的空间A520,A521…等房间来给程序存放数据,房间号就是变量名了),顾客觉得数字太多了记不住(A520数字不好记),于是作为程序员的你告诉他你去找一个名字叫八仙过海的房间(变量名从A520简化为int yourRoomNum)。然后你和你的小伙伴住进房间(把数据存进内存),经过一夜后,退房(释放内存)。流程结束。

所以,你了解了变量。就大致知道变量的语法还是挺像那么回事的。语法:类型 变量=值

    class Program
    {
        static void Main(string[] args)
        {
            //如果要在计算机中存储1000这个数字,需要两步
            
            //第一步,根据要放的数据开空间(开房间)
            int num;   //int表示要开辟一个能存储整数的连续的内存空间
            
            //第二步,把数据放进去  通过=号(住进去)
            num = 1000;
        }
    }

变量一定要先声明,再赋值,才能使用(读取).
变量(命名空间/方法/类型)的命名规则:
1 必须以“字母”_或@符号开头.
2 后面可以跟任意“字母”、数字、下划线.
注意:
1)你起的变量名不要与c#系统中的关键字重复.
2)在c#中,大小写是敏感的.
3)同一个变量名不允许重复定义

C# 变量命名编码规范——Camel 命名法:
首个单词的首字母小写,其余单词的首字母大写。[方法中的变量]
Pascal命名规范:每一个单词第一字母都大写[类/方法]
如果使用到英文单词的缩写,全部用大写!

又一天,你又带着一个小女生开房间,酒店服务员一看老熟人了,直接给你来个双人床,你顿时火冒三丈,我思想品德老师经常教育我,勤俭节约是中华民族的传统美德,反对铺张浪费,两张床太奢侈了,我需要一张床的房间。服务员就给你换了房型----大床房。
这里所说的不同型号的房型就可以理解为不同类型的变量(或类型Class的实体),有int ,long,short,double,decimal,bool,bit,string,char,enum。两个男生可能要住双人间,住不了大床房,就好似3.1415只能住double,不能住int一样。

那好学的你,肯定想问大床房和双人间有啥根本区别了,区别如下:
int 表示整数
double 表示小数
char 字符型 说白了就是一个字. 注意:在c#中有规定,字符型必须用单引号引起来 ‘a’ ‘B’
空格也是一个字符 注意:没有空字符
String 字符串类型 说白了就是由0个或多个字符组成的 字符串必须用双引号引起来 “张三” “lisi” “18” 字符串是有空字符串的 “”
Int类型和uint类型的区别的原理
Int类型为正负2的31次方(即正负2147483648),unit为正2的32次方(即4294967296)。因为32位int类型中有一位是正负号,而unit没有符号,另外正的数字要减一,因为0也在它的范围之内。
一些特殊的acii值 :A 65 a 97 0 48 \\n 10 回车 13
Decimal 我们可以理解为就是存小数的.只是它的精度更高,一般用于财务数据的计算
注意:在c#中,写一个小数如3.14默认这个小数是double类型,如果要表示一个decimal类型,请在这个数据后加一个m

于是你带着小妹妹高兴的住进了大床房,然而半夜的时候小妹妹突然生气了,别问我我也不知道为啥。你又找服务员非要换回双人床,你说上一次你和小男生住的时候就没闹矛盾,服务员说,安排。于是你和小妹妹住了双人床。
有时候,类型之间是可以互相转化的,如int可以自动转化为double或decimal等精度高的类型。
如 int num=30;
double numNew=num;//不会丢失精度

反之,高精度向低精度转化是会丢失精度的。微软有语法支持,就是给你说,要不要转化要不要丢失精度你自己把握,出了事不是我微软的锅。语法:(数据类型名)待转换的值;
如 double num=3.1415;
int numNew=(int)num;

我们还会经常用到特殊需要注意的的转化:
特殊的自动转化:

string str = “2” + 2;// 字符串与数字相加,那数字就会自动转为字符串,所以结果就是’22’
int sum = ‘2’ + 2; //char类型’2’在与数字计算会自动转化为int,相当于(int)‘2’,2的Ascii码是50,所以结果是52

特殊的强制转化(枚举)
枚举定义: (Enum enumColor={红=1,黄=2,蓝=3})
枚举变量转字符串:enumColor.toString()
枚举变量转数字:(int)enumColor或者Enum.Parse( typeof(enumColor),“蓝”); //语法:(待转的枚举类型)(Enum.Parse( typeof(待转的枚举类型),“待转的字符串”);

能强制类型转换的数据一定是相兼容的,比如数字类型转成数字类型,如int ->double ,double->int
下成的转换是错误的:
double pi = (double)“3.14”; 字符串类型与double类型不兼容,不能转换.

如果想把字符串转换成int类型,那么就用Convert:
定义一个int类型的变量= Convert.ToInt32(待转换的字符串);

在这里插入图片描述

以上是关于C# 变量入门趣谈的主要内容,如果未能解决你的问题,请参考以下文章

雷学委趣谈编程 大型鞋厂与开发工程化

雷学委趣谈编程 大型鞋厂与开发工程化

值类型和引用类型原理

《C#零基础入门之百识百例》变量常量 -- 两数交换

《C#零基础入门之百识百例》(六十二)结构体类型变量 -- 学生数据记录

C# 最有用的(自定义)代码片段是啥? [关闭]