• C# 入门—基本语法


    一、数据类型

    C# 语言中内置了一些基本的数据类型,数据类型用来指定程序中变量可以存储的数据的类型,C# 中的数据类型可以大致分为三类:

    • 值类型(Value types);
    • 引用类型(References types);
    • 指针类型(Pointer types);

    值类型

    C# 中的值类型是从 System.ValueType 类中派生出来的,对于值类型的变量我们可以直接为其分配一个具体的值。当声明一个值类型的变量时,系统会自动分配一块儿内存区域用来存储这个变量的值,需要注意的是,变量所占内存的大小会根据系统的不同而有所变化。

    引用类型

    引用类型的变量中并不存储实际的数据值,而是存储的对数据(对象)的引用,换句话说就是,引用类型的变量中存储的是数据在内存中的位置。当多个变量都引用同一个内存地址时,如果其中一个变量改变了内存中数据的值,那么所有引用这个内存地址的变量的值都会改变。C# 中内置的引用类型包括 Object(对象)、Dynamic(动态)和 string(字符串)。

    1) 对象类型(Object)

    对象类型是 C# 通用类型系统(Common Type System:CTS)中所有数据类型的最终基类,Object 是 System.Object 类的别名。任何类型的值都可以分配给对象类型,但是在分配值之前,需要对类型进行转换。

    将值类型转换为对象类型的过程被称为“装箱”,反之将对象类型转换为值类型的过程则被称为“拆箱”。注意,只有经过装箱的数据才能进行拆箱。

    2) 动态类型(Dynamic)

    您可以在动态类型的变量中存储任何类型的值,这些变量的类型检查是在程序运行时进行的。动态类型的声明语法如下所示:

    dynamic = value;

    例如:

    dynamic d = 20;

    动态类型与对象类型类似,但对象类型变量的类型检查是在编译时进行的,而动态类型变量的类型检查则是在程序运行时进行的。

    3) 字符串类型(String)

    字符串类型的变量允许您将一个字符串赋值给这个变量,字符串类型需要通过 String 类来创建,String 类是 System.String 类的别名,它是从对象(Object)类型中派生的。在 C# 中有两种定义字符串类型的方式,分别是使用" "@" "

    指针类型

    C# 语言中的指针是一个变量,也称为定位器或指示符,其中可以存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针具有相同的功能。

    二、变量

            变量可以理解为是我们程序可以操作的内存区域的名称,在 C# 中每个变量都有自己特定的类型,这个类型确定了变量所占内存的大小、布局、取值范围以及可以对该变量执行的操作。

            可以将变量当作一种通过符号(变量名)表示某个内存区域的方法,变量的值可以更改,并且可以多次重复使用。C# 中的基本变量类型可以归纳为以下几种:

    C# 中变量的名称并不是可以随意定义的,需要遵循如下所示的规则:

    • 变量名中可以包含英文字母a-z, A-Z、数字0-9和下划线_
    • 变量名只能以英文字母a-z, A-Z或下划线_开头,不能以数字开头;
    • 变量名中不允许使用空格;
    • 变量名不能是任何 C# 中的保留字或关键字,例如 char、float 等。

    三、常量

    常量需要使用 const 关键字定义,语法格式如下所示:

    const data_type constant_name = value;

    其中,data_type 为常量的数据类型;constant_name 为常量名(类似于变量名);value 为常量的值。

    1. using System;
    2. namespace c.biancheng.net
    3. {
    4. class Demo
    5. {
    6. static void Main(string[] args){
    7. const double pi = 3.14; // 定义一个常量
    8. double r;
    9. Console.WriteLine("本程序可以计算圆的面积,请输入一个数字作为圆的半径: ");
    10. r = Convert.ToDouble(Console.ReadLine());
    11. double areaCircle = pi * r * r;
    12. Console.WriteLine("半径为: {0}, 圆的面积为: {1}", r, areaCircle);
    13. Console.ReadKey();
    14. }
    15. }
    16. }

    四、 foreach循环

    使用 foreach 可以遍历数组或者集合对象中的每一个元素,其语法格式如下:

    foreach(数据类型 变量名 in 数组或集合对象){
        语句块;
    }

           foreach 会在每次循环的过程中,依次从数组或集合对象中取出一个新的元素放到foreach( )里定义的变量中,直到所有元素都成功取出后退出循环。

    【示例】使用 for 循环定义一个包含 1~100 以内所有数字的数组,然后使用 foreach 循环计算 1~100 以内所有数字的和:

    1. using System;
    2. namespace c.biancheng.net
    3. {
    4. class Demo
    5. {
    6. static void Main(string[] args){
    7. int[] arr = new int[100];
    8. for(int i = 0; i < 100; i++)
    9. {
    10. arr[i] = i + 1;
    11. }
    12. int sum = 0;
    13. foreach (int j in arr)
    14. {
    15. sum = sum + j;
    16. }
    17. Console.WriteLine("1~100 以内数字的和为:{0}", sum);
    18. Console.ReadLine();
    19. }
    20. }
    21. }

    五、break、continue、goto:跳出循环

            break 语句不仅可以用来终止 switch 语句,在循环语句中使用时还可以用来跳出循环,执行循环外的下一条语句。如果是在嵌套循环中使用,例如在内层的循环中使用 break 语句,那么程序只会跳出内层的循环,并不会影响到外层循环的执行。break 语句的执行原理如下图所示:

    C# 中 continue 语句的工作原理与 break 语句类似,但是 continue 语句并不会跳出整个循环,而是跳过本次循环继续执行下一次的循环。continue 的执行原理如下图所示。

    【示例】使用 for 循环输出 1~9 之间的数字,遇到 5 时跳过:

    1. using System;
    2. namespace c.biancheng.net
    3. {
    4. class Demo
    5. {
    6. static void Main(string[] args){
    7. for(int i = 1; i <= 9; i++){
    8. if(i == 5){
    9. continue;
    10. }
    11. Console.Write("{0} ", i);
    12. }
    13. Console.ReadLine();
    14. }
    15. }
    16. }

            C# 中的 goto 语句也称为跳转语句,使用它可以控制程序跳转到指定的位置执行。不过并不建议在程序中多次使用 goto 语句,因为它会使程序变得更加复杂。goto 语句的语法格式如下所示:

    1. goto Labels;
    2. 语句块1;
    3. Labels:
    4.     语句块2;

            想要使用 goto 语句来跳转程序,必须先在想要跳转的位置定义好一个标签(Labels),标签名称的定义和变量名类似,然后使用goto 标签名;即可使程序跳转到指定位置执行。如上面语法中所示,程序会跳过“语句块1”直接执行“语句块2”。

    提示:goto 语句并不限于在循环中使用,其它的情况也可以使用。但是,goto 语句不能从循环外跳转到循环语句中,而且不能跳出类的范围。

  • 相关阅读:
    js实现图片懒加载
    维格云筛选组件入门教程
    ajax:实现前端向后端发请求接收数据的过程、前后端交互
    idea类和方法配置注释模板
    数据库事务——事务隔离级别
    高中物理:力、物体和平衡
    VOIP语音抓包、解码与带宽计算
    redis-springboot、分布式锁
    Unity中Shader实现UI流光效果
    申请免费 SSL 证书为您的小程序加密通信
  • 原文地址:https://blog.csdn.net/weixin_49171365/article/details/140009520