• C#图解教程总结(第二章)


      写在本文前面的话,最近一直在自学C#,视频看了不少,案例demo也敲了不少,但局限于新生事物的自然抗拒性,加上自律等各种因素吧,效果很差。本着有问题就找原因的思路,发现还是基础太差,被网上各种资料迷惑。所以才有了接下来的C#图解教程学习总结。打算以此书为地基,梳理、总结、扩展,以递归方式不断重复。

    2.1 一个简单的C#程序

    using System;   //告诉编译器这个程序使用System命名空间的类型
    
    namespace Simple //声明一个新命名空间,名称为Simple,新命名空间包括紧挨着的大括号内所有内容
    {
    	class Program   //声明一个新的类类型,名称为Program
    	{
    		static void Main()  // 声明一个名称为Main的方法作为类Program的成员
    		{
    			Console.WriteLine("hello world");// Main的方法体,只包含一个单独的语句
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    • Main方法体中Console类是在System命名空间内,所以会在程序第一行添加using System。
    • Main是一个特殊函数,编译器用它作为程序的起始点。

    2.2 标识符和关键字

    定义:标识符是一种字符串,用来命名如变量、方法、参数和许多后面将要阐述的其他程序结构之类的东西。

    使用规则

    • 字母和下划线(a-z、A-Z和_)可以用在任何位置
    • 数字不能放在首位,但可以放在其他的任何地方
    • @字符可以放在标识符的首位,但不能放在其他任何地方,虽然允许使用@字符,但不推荐作为常用字符。

    标识符区分大小写,MYvar和myvar为不同的标识符

    2.2.1命名约定

    建议使用特定大小写约定创建标识符,比如Pascal大小写风格。

    连续成标识符的每个单词都首字母大写,其余小写,比如ThreeNumber.

    在成员字段命名中,有两个公共约定:

    • 字段名称以下划线开头:_HighTemp_LastTemp;
    • 字段名称以m_开头:m_HighTemp、m_LastName;

    2.2.2 关键字

    用来定义C#语言的字符串记号。

    • 关键字不能被用作变量名或任何气啊形式的标识符,除非以@字符开始

    • 所有C#关键字全部都由小写字母组成,但是.NET类型名使用Pascal大小写约定

    在这里插入图片描述

    上下文关键字是仅在特定的语言结构中充当关键字的标识符,但在其他地方代码,可以被当作标识符。
    在这里插入图片描述

    2.3 Main

    每个C#程序必须有一个类带有Main方法(函数)。

    每个C#程序的可执行起始点在Main中的第一条指令。

    Main必须首字母大写

    Main的最简单形式如下:

    static void Main()
    {
    	更多语句
    }
    
    • 1
    • 2
    • 3
    • 4

    2.4 空白

    程序中的空白指的是没有可视化输出的字符,空白字符包括:空格、制表符、换行符、回车符。

    //很好的格式
    Main()
    {
    	Console.WriteLine("Hello world");
    }
    
    //连在一起
    Main(){Console.WriteLine("Hello XX");}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.5语句

    语句是描述一个类型或告诉程序去执行一个动作的一条源代码指令

    简单语句以一个分号结束。

    int val1 =5;
    System.Console.WriteLine("Hello world, I am {0}",val1);
    
    • 1
    • 2

    块是一个由成对大括号包围的0条或多条语句序列

    {
    	int val1 = 5;
    	System.Console.WriteLine("The value of var1 is {0}",var1);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 有些特定的程序结构只能使用块,在这些结构中,不能用简单语句替代块
    • 虽然简单语句以分号结束,但块后面不跟分号

    2.6 从程序中输出文本

    控制台窗口是一种简单的命令提示窗口,允许程序显示文本并从键盘接收输入,BCL提供一个名称为Console的类。包括输入和输出数据到控制台窗口。

    2.6.1 Write

    Console类的成员,把一个文本字符发送到程序的控制台窗口

    Console.Write("This is trivial text.");
    
    //Write没有在字符串后面添加换行符,所以三条语句都输出到同一行
    Console.Write("This is trivial text1.");
    Console.Write("This is trivial text2.");
    Console.Write("This is trivial text3.");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.6.2 WriteLine

    Console类的成员,和Write功能相同,但会在每个输出字符串的结尾添加一个换行符

    System.Console.WriteLine("This is text 1.");
    System.Console.WriteLine("This is text 2.");
    System.Console.WriteLine("This is text 3.");
    
    • 1
    • 2
    • 3

    2.6.3 格式字符串

    Write语句和WriteLine语句的常规形式中可以有一个以上的参数

    //语法案例
    Console.WriteLine(格式字符串(含替代标记),替换值0,替换值1,替换值2,....);
    
    Console.WriteLine("Hello {0},Hello {1}.","xx","World");
    
    • 1
    • 2
    • 3
    • 4

    2.6.4 多重标记和值

    在C#中,替代标记和值的数量是任意的。

    • 值可以以任何顺序使用

    • 值可以在格式字符串中替换任意次

      Console.WriteLine("hello {0},hello {1},hello(1)","wolrd","xx");
      
      • 1

    标记不能试图引用替换值列表以外位置的值,如果引用了,不会产生编译错误。但会产生运行时错误。

    Console.WriteLine("Hello {0},Hello {2}","xx","world");  //Error
    
    • 1

    2.7 注释

    单行注释://

    带分隔符注释:/* 注释内容 */。可以跨行‘。嵌套注释是不允许的

    文档注释:/// 包括XML文本

    //单行注释
    
    /*
    带分隔符注释第一行
    带分隔符注释第二行
    带分隔符注释第二行
    */
    
    int  /*我是本行中注释的一部分*/ var2;
    
    /*
    带分隔符注释第一行
    /*我是嵌套在带分隔符注释里面的又一个带分隔符注释,
    但这样是不允许的,虽然不会报错*/
    */
        
     //文档注释
    ///
    ///This class does....
    ///
    class Program
    {
        ....
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
  • 相关阅读:
    从一道面试题来谈谈Golang中的 ==
    学生HTML个人网页作业作品 HTML+CSS+JavaScript环保页面设计与实现制作
    打印机 默认使用 首选项配置
    【cookie和session】娓娓道来cookie和session
    Vue3中的Ref与Reactive:深入理解响应式编程
    MySQL日志 错误日志 二进制日志 查询日志 慢查询日志
    Vue-基础01
    如何查询一组文件夹中的总字节数 (LINQ) (C#)
    硬件及接口学习总结
    通过Frp解决实现内网穿透
  • 原文地址:https://blog.csdn.net/yue008/article/details/127678648