03--C#入门基础

今天我们就开始正式进入C#的入门学习,从最简单的基础开始切入,总结内容都非常的细节,但也没有全部概况进去,大家可以根据自己情况选择查看,如有错处,欢迎指正~

目录

VS中常用的快捷键

代码中出现的波浪线提示

C#的三种注释符和Region、EndRegion

变量

C#中, +号的作用

占位符

异常捕获与处理

转义符

类型转换:

基础代码示例

VS中常用的快捷键

Ctrl+K+D:    快速对齐代码(代码出现语法错误的时候,无法对齐)

Ctrl+J:         快速弹出智能提示

Shift+End:   光标在行首时,快速选中当前行

Shift+Home:光标在行尾时,快速选中当前行

Ctrl+K+C:    注释所选代码

Ctrl+K+U:    取消对所选代码的注释

Ctrl+M+O:   折叠所有的方法

Ctrl+M+P:   展开折叠的所有方法

F1:转到帮助文档,VS的帮助文档非常的强大,可以安装一个经常查看

代码中出现的波浪线提示

1. 红色波浪线,表明有语法错误;

2. 绿色波浪线,警告线,没有语法错误,但是可能会出现错误;例如有未使用的变量定义;

C#的三种注释符和Region、EndRegion

1. 单行注释符://

2.多行注释:/*要注释的内容*/

3.文档注释:///多用来解释类或者方法

4. #Region 和 #EndRegion:#Region   需要折叠的冗余代码   #EndRegion

代码展示(3,4)

03--C#入门基础_第1张图片

03--C#入门基础_第2张图片

变量

计算机当中存储数据需要在内存中开辟一块空间,每个空间都会分配一个地址,地址不方便识别,这时就用变量来指向内存给我们开辟的这块空间,便于识别,因此可以理解变量其实是我们在计算机当中存储数据的一个标识;

******首先要保证取的变量有意义,其次要遵循变量的命名规范,无意义的变量名都是扯淡******

变量的命名规则

1. 必须以字母、下划线或@符号开头,不能以数字开头

2.开头后面则可以跟任意“字母”、数字、下划线

3.不能与C#系统中的关键字重复

4. 在C#中,大小写是区分大小写的,即大写和小写表示不同的变量

变量的两种命名规范

1.Camel 骆驼命名规范,要求变量名首单词字母要小写,其余每个单词的首字母要大写

--用于本地变量和方法参数,例如calResult;

2.Pascal 命名规范:要求每个单词的首字母都要大写,其余字母小写;

--用于给类或者方法命名,例如FirstDemo

变量的几种类型

short: 16位有符号整数,-2^{15}~2^{15}-1

ushort: 16位无符号整数,0~2^{16}-1

int :32位有符号整数,-2^{31}~2^{31}-1

uint:32位无符号整数,0~2^{32}-1

long :64位有符号整数,-2^{63}~2^{63}-1

float: 精确到7位,\pm 1.5*10^{-45}~\pm 3.4*10^{38}

double:精确到15~16位,\pm 5.0*10^{-324}~\pm 1.7*10^{308}

char:存储单个字符,使用单引号‘’,不能存空

string:用来存储多个文本,使用双引号"",可以存空

decimal: 主要用来存储钱这种类型的,值结尾加m,精确到28~29位

变量的作用域

变量的作用域就是你能够使用到这个变量的范围;一般从声明它的那个括号开始到那个括号所对应的结束的括号结束;在这个范围内,我们可以访问并使用变量,超出这个范围就访问不到了;

C#中, +号的作用

1. 连接:当+号两边有一边是字符串的时候,+号起连接作用

2. 相加:当两边都是数字的时候,+号起相加的作用

占位符

使用方法: 先占位,再补位; {0}去占位,“,”以后再去补位

1. 占几个位,就应该补几个位,多补,没效果,语法不报错,能正常运行; 少补语法也不报错,但会抛异常;

2. 输出顺序,占位符按照占位的顺序输出;

3. 占位还可以使用特定格式来约束小数位,例如保留小数点后两位的输出方式{0:0.00},d)

异常捕获与处理

概念

前面占位符第一点提到少补位时程序会抛异常,那么什么是异常呢?

异常就是指语法上并没有任何错误,但是程序在运行期间,由于某些原因出现了问题,使程序不能再正常运行。

捕获异常

我们使用try--catch来捕获异常

哪行代码可能会出现异常,就try一下;

try

{

        可能会出现异常的代码;

}

catch

{

        出现异常后要执行的代码;

}

执行过程:如果try中的代码没有出现异常,那么catch中的代码不会执行。

如果try中的代码出现了 异常,就算这行出现异常的代码后面还有一百行代码也都不会执行;

而是直接跳到catch中执行代码。

注意:try 和 catch之间不能有其他代码,并且最好是在一个模块代码写完了以后再来看全局的代码,哪些地方需要用try catch; 

转义符

是指一个‘\’ + 一个特殊的字符,组成了一个具有特殊意义的字符

\n : 换行,控制台可以识别,windows不识别,苹果系统可以识别

\r\n: windows 操作系统可识别的换行

\": 表示英文半角的双引号

\t: 一个tab键

\b:一个退格键, 放在字符串的两端没有效果

\\: 表示一个\

@符号:取消\在字符串中的转义作用,使其单纯的表示一个'\'

类型转换:

隐式类型转换(自动类型转换)

 满足以下两个条件的就是隐式类型的转换,它是自动完成的,无需额外加代码

1. 两种类型兼容,例如 int 和 double 兼容(都是数字类型)

2. 目标类型大于源类型,例如 double >int , 即小的转大的

显示类型转换(强制转换)

满足一下两个条件就可以去做强制转换,在前面加上要转换的类型

1. 两种类型兼容 int---double

2. 目标类型小于源类型 double  转int, 即大的转小的; (int)

注意:对于表达式的转换结果

整数类型的运算结果一定是整数,就算赋值过去的是一个double类型的值,需要得到一个double类型的值,则表达式内的其中一个操作数一定要被提升为double类型的;

convert 转换

适用于类型不兼容,例如string 转 int ;

前提:string转int,也要面上看起来能够转换,例如“123”可转,“123sb”就不能转,就会抛异常;

int.TryParse(string,out)

和convert类似,不过convert转换遇到“123sb”时会抛异常,但是tryparse不会;

TryParse实际是一个方法,一个返回值和两个参数;

bool b=int.TryParse(string 参数1,out int 参数2); 参数1是待转换的值,参数2是转换以后的值,返回值是b,转换成功,则b为true,参数2为转换以后的值;转换失败,则b为false,参数2为0;

对于以上的基础,我们拿一个代码例子来演示一番:

基础代码示例

  static void Main(string[] args)
        {
            string[] strNumber;

            //使用@取消路径中的\的转义意义,如下,直接使用'\'就不会报错
            string Path = @"C:\Program Files\Microsoft Visual Studio 10.0\Common7\Packages";
            //+号拼接字符串
            Console.WriteLine("请输入两个需要整数,以分号隔开," + "系统将返回给你较大的那个值\n" + 
                "同时用两种方式进行做除,输出结果5;");

            //读取用户的输入
            string strRead = Console.ReadLine();
            //字符串的分割,将用户输入存入数组
            strNumber = strRead.Split(';');
           
            //对convert的异常使用try catch 进行异常捕获
            try
            {
                //string转int
                int number1 = Convert.ToInt32(strNumber[0]);
                int number2 = Convert.ToInt32(strNumber[1]);
                int output = BasicDemo.GetMax(number1, number2);

                Console.WriteLine("您输入的两个值分别是{0},{1},数值{2}更大", number1, number2, output);
                if (number2 != 0)
                {
                    //该结果会取整
                    double result1 = number1 / number2;
                    //如下式子才是真正的结果
                    double result2 = number1 * 1.0 / number2;
                    //使用占位符的取小数位数
                    Console.WriteLine("您输入的数字除法结果有两种:\n{0}/{1} = {2:0.00};{3}/{4} = {5:0.00}", number1, number2, result1, number1, number2, result2);
                }
                else
                {
                    Console.WriteLine("您输入的第二个数字为0,无法计算做除法计算");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("您输入的数字不是整数,请重新输入整数,以分号隔开!");
                strRead = Console.ReadLine();
                strNumber = strRead.Split(';');
                try
                {
                    //string转int
                    int number1 = Convert.ToInt32(strNumber[0]);
                    int number2 = Convert.ToInt32(strNumber[1]);
                    int output = BasicDemo.GetMax(number1, number2);

                    Console.WriteLine("您输入的两个值分别是{0},{1},数值{2}更大", number1, number2, output);
                    if (number2 != 0)
                    {
                        //该结果会取整
                        double result1 = number1 / number2;
                        //如下式子才是真正的结果
                        double result2 = number1 * 1.0 / number2;
                        //使用占位符的取小数位数
                        Console.WriteLine("您输入的数字除法结果有两种:\n{0}/{1} = {2:0.00};{3}/{4} = {5:0.00}", number1, number2, result1, number1, number2, result2);
                    }
                    else
                    {
                        Console.WriteLine("您输入的第二个数字为0,无法计算做除法计算");

                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("您输入的数字不是整数,程序将退出!");
                }
            }
                    //使程序暂停
                    Console.ReadKey();
        }
public static class BasicDemo
    {
        /// 
        /// 输入两个整数值,返回一个较大的整数值
        /// 
        /// 整数值1
        /// 整数值2
        /// 较大的整数值
        public static int GetMax(int number1, int number2)
        {
            int calResult = 0;
            if (number1>number2)
            {
                calResult = number1;
            }
            else
            {
                calResult = number2;
            }
           
            return calResult;
        }
    }

运行结果:

03--C#入门基础_第3张图片

03--C#入门基础_第4张图片

你可能感兴趣的:(C#入门,c#,visual,studio)