• C# 一、语法结构、注释、命名空间、Main入口点、变量与常量、运算符、流程控制(循环)


    一、代码结构

    1)一个 C# 程序主要包括以下部分:

    • 命名空间声明(Namespace declaration)
    • 一个 class
    • Class 方法
    • Class 属性
    • 一个 Main 方法
    • 语句(Statements)& 表达式(Expressions)
    • 注释
    using System;
    namespace HelloWorldApplication
    {
       class HelloWorld
       {
          static void Main(string[] args)
          {
             /* 我的第一个 C# 程序*/
             Console.WriteLine("Hello World");
             Console.ReadKey();
          }
       }
    }
    

      在项目中可以通过“类视图”来查看结构。

    2)注释

    1、注释符的作用
      1)、注销
      2)、解释


    2、c#的3种注释符
      1)、单行注释 //
      2)、多行注释 /*要注释的内容*/
      3)、文档注释 /// 多用来解释类或者方法

    • C#中#region和#endregion的用法:

    折叠中间的代码块(折叠后的说明文字为#region后面的说明)

    • summary

    输入三个杠的,如"///"用XML文件,将来调用这个类或方法时可以作为工具提示的

          /// <summary>
            /// 建立数据库连接.
            /// </summary>
            /// <returns>返回SqlConnection对象</returns>
    •  快捷键

      Ctrl + k + c 快速注释选中内容

      Ctrl + k + u 快速取消注选中的注释内容

    二、命名空间

    1)一个合名空间可以包含(如类、接口、委托等),而且 命名空间中也可以包含命名空间

    2)任何层次的对象的成员都可以使用成员运算符"."来引用,英文句点。

    3)引用命名空间

    •   有时命名空间名字长,或层次较多的情况,用using引用
    • 如需要使用相同类时,解决方法是在引入命名空间时为其分配一个别名
    using na =A
    
    using nb=B;

    4) using static 指令 ,可以引入目标命名空间下的静态类型。在代码中访问静态类的成员时就不必输入类型的名称。面是直接输入静态类型的成员名称就可以了。如下面的区别,如引入了Console类,直接输入成员名字就可了,不必输入类别。

    using System;
    
    console writeLine(....);
    using System;
    using static System.Console;
    
    namespace MyApp
    {
        class Program
        {
           static void Main(string[] args)
            {
                // 直接调用Console类的WriteLine方法
                WriteLine("可以直接调用静态方法。");
                // 直接调用Console类的ReadKey方法
                ReadKey();
            }
        }
    }                

    三 、Main入口点

    代码从入口点开始执行

    入口点有以下特点:

    1)必须声明一个类中

    2)必须声明为静态方法,加上static关键字。

    3)可以是void,不返回结果;也可以返回一个整数int,对于正常执行的应用程序,应返回为0,只有这两种类型。

    4)名字必须是Main,首字母 为M

    当有多个Main方法,需要选择一个入口点,在【项目】->【项目名称->属性】命令打开项目属性窗口。另一个方法是在“解决方案资源管理器”窗口中右击项目名称节点 。弹出菜单 中选择【属性】。

    四 、变量与常量

    1、变量

    1) 可以用default关键字来赋默认的值 ,如int x=default(int);             // x 的值 为0

    2)生命周期:变量暂存于内存中,当程序退出会销毁。

    3)变量允许代码中修改

    4)使用关键字命名时前面加“@”,不介意这样命名;不能使用数字开头命名。

    string aaa = "你好123";
    Label1.Text = aaa.Length.ToString();  //结果5
    Label2.Text = System.Text.Encoding.Default.GetBytes(aaa).Length.ToString();  //结果7

    String.Empty、NULL与""三者的区别

    String.Empty和""是一样的,都是空,习惯用string.empty。 Null和他们就有区别了,就是没有值,也没分配地址,此处可以理解成什么都没有。

    2、常量

    基本语法参考

    1)常量使用const关键字来定义

    2)常量值不能修改,变量的值不能赋值给常量

    3)常量是可以直接访问的,不像变量需要实例化。

    4)后缀和前缀

    数值常数有:整型常数、浮点常数;

    整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制。

    整数常量也可以有后缀,可以是 U 和 L 的组合,其中,U 和 L 分别表示 unsigned 和 long。后缀可以是大写或者小写,多个后缀以任意顺序进行

    整型常数的后缀有:u或U(unsigned)、l或L(long)、u/U与l/L的组合(如:ul、lu、Lu等)。例:100u; -123u; 0x123l;
    浮点常数的后缀有:f或F(单精度浮点数)、l或L(长双精度浮点数)。(注:因浮点型常数总是有符号的,故没有u或U后缀)。例:1.23e5f; 1.23l; -123.45f;

    4)字符常量:在 C# 中有一些特定的字符,当它们的前面带有反斜杠时有特殊的意义,可用于表示换行符( )或制表符 tab( )。详细参考基本语法参考

    5)@"":让转移字符""保持原意,不要转义。

     字符常量

    参考具体表格详细介绍

    1)C# string怎么换行

    在要换行的地方输入“ ”即可换行,例如:

    string a = "我是第一行 " + "我是第二行" 。

    3、类型转换

    参考来自

    Convert.ToInt32(变量)//转换成整型

    Convert.ToDecimal();要转换的双精度浮点数。

    强制转换

    namespace TypeConversionApplication
    {
        class ExplicitConversion
        {
            static void Main(string[] args)
            {
                double d = 5673.74;
                int i;
    
                // 强制转换 double 为 int
                i = (int)d;
                Console.WriteLine(i);
                Console.ReadKey();
                
            }
        }
    }

    C#中ToString()格式详解

     在很多对象显示为字符串的时候都会使用到ToString中的格式化,由于以前没怎么注意到这个问题,想总结一下各个基础结构对象的格式化 Int.ToString(format):

    4、C# 可空类型(Nullable)

    参考来自

    C# 单问号 ? 与 双问号 ??

    ? : 单问号用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 NullAble 类型的。

    Null 合并运算符( ?? )

    如果第一个操作数的值为 null,则运算符返回第二个操作数的值,否则返回第一个操作数的值

     五、运算符

    基本语法参考来自

    三类运算符

    1、一元运算符:只有一个操作数:自增运算符、自减运算符
    2、二元运算符:只有两个操作数参与运算的运算符
    3、三元运算符,只有一个“?”
    <判断条件>?<条件为真时的表达式>:<条件为假时的表达式>

     

    自增运算符、自减运算符

    ++i:是在参与 其他运算之前加1

    i++:是参与运算后加1

    自减类似。 

    位运算符

    二进制位之间的运算,以下五种常用的运算方式

    1)按位与  &:必须二者同时为真时,结果才为1,否则为0.

    2)按位或  |:只要有一个是真,结果就为真

    3)左移   <<:将二进制都向左移若干位。

    4)右移   >>:将二进制都向右移若干位。

    5)异或  ^  :只有一个为真时才为真,否则为0.

    比较运算符

    比较运算符的用途就是用来比较两个表达式,结算结果为布尔类型,True,False

    >,<,==,>=,<=

    &&,||

    六、流程控制

    按两次Tab,自动出来代码块

    分支结构

    1)if语句

    2)switch:一个固定值,判断用 ==

    break 语句 终止 loop 或 switch 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。可以完成 即时跳循环的功能 
    continue 语句 引起循环跳过主体的剩余部分,立即重新开始测试条件。不跳出整个循环,只是跳过某一轮循环。

    循环往复

    1)for语句

    for ( init; condition; increment )
    {
       statement(s);
    }

    下面是 for 循环的控制流:

    1. init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。

    2. 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。

    3. 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。

    4. 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。

    2) foreach

    适合枚举如数组、列表、集合之类的数据结构的元素,事先也不必准确知道元素的个数。

    3)whil语句

  • 相关阅读:
    ES6之Promise封装ajax()
    ECMAScript 6 入门之 展开运算符(...)
    函数篇:Callback----回调函数
    Vue-cli组件中写一个节流函数
    使用vant中的地址编辑组件
    js中substr()、substring()、chatAt()的区别
    npm使用国内淘宝镜像的方法
    js数组
    ECMAScript版本
    匿名函数的调用
  • 原文地址:https://www.cnblogs.com/michellexiaoqi/p/9866852.html
Copyright © 2020-2023  润新知