C#学习笔记3

C#学习笔记3

开发环境:vs2022

1. 构成C#语言的基本元素

  • 关键字(Keyword)
    C# Keywords和Contextual Keywords。在帮助文档里面查看——C# Keyword。
    在这里插入图片描述

  • 操作符(Operator)
    加减乘除,异或这些。在帮助文档里面查看——C# Operators。

  • 标识符(Identifier) 也就是命名

    • 标识符要合法,不能和关键字冲突;
    • 如果非要用关键字作为标识符,可以在关键字前面加 @;
    • 可以用字母、数字和下划线组成标识符,但数字不能作为开头;
    • 标识符可以有开始字符+后续字符组成;
    • 汉语或者其他语言也可以做标识符,但是这样写不利于程序的可读性;
    • 命名要有易读性;
    • 命名规范:驼峰法和Pascal法。链接: link
  • 标点符号

  • 文本(字面值)
    整数(多种后缀)、实数(多种后缀)、字符、字符串、布尔、空白(null)

  • 注释

    • 单行://
    • 多行:/……/
  • 空白

    • 多个空格编译器会自动删除成为一个空格、
    • 手动调整格式:编辑——高级——设置文档格式

2. 关键字

  • 可以自动识别所定义变量的类型。
    输出为Int32

    var x = 3;
    Console.WriteLine(x.GetType().Name);
    

    输出为Int64

    var x = 3L;
    Console.WriteLine(x.GetType().Name);
    

    输出为Double

    var x = 3.0;
    Console.WriteLine(x.GetType().Name);
    

    输出为Single,即单精度浮点型

    var x = 3.0F;
    Console.WriteLine(x.GetType().Name);
    

3. C#中函数的简单定义和调用

  • 三个例子
    namespace MyExample
    {
        internal class Program
        {
            static void Main(string[] args)
            {
    
                Calculator c = new Calculator();    //引用变量,创建实例化
                int x = c.Add(2, 3);    //此处的写法和C语言略有不同
                Console.WriteLine(x);
    
                Calculator b = new Calculator();
                string y = b.Today();
                Console.WriteLine(y);
    
                Calculator e = new Calculator();
                c.PrintSum(4, 5);
    
            }
    
            class Calculator
            {
                public int Add(int a, int b)    //public表示这个函数可以在class Calculator外部使用
                {
                    int result = a + b;
                    return result;
                }
    
                public string Today()
                {
                    int day = DateTime.Now.Day; //获取计算机上当前的日期
                    return day.ToString();  //将实例数值转换为字符串的形式
                }
    
                public void PrintSum(int a,int b)   //函数内直接打印
                {
                    int result = a + b;
                    Console.WriteLine(result);
                }
            }
        }
    }		
    

4. 使用递归计算1-100和的三种方式

  • 方法一
    namespace MyExample2
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                Calculator c = new Calculator();
    
                int result = c.SumForm1TOX(100);    //此处必须写成c.SumForm1TOX(100),不然无法找到,与c语言有区别
                Console.WriteLine(result);
    
            }
        }
        class Calculator
    	{
            //使用循环计算1-100的和
            public int SumForm1TOX(int x)
            {
                int result = 0;
                for (int i = 0; i < x+1; i++)
                {
                    result = result + i;
                }
    
                return result;
            }
        }
    }
    
    
  • 方法二
    //使用递归计算1-100的和
    public int SumForm1TOX(int x)
    {
        if(x==1)
        {
            return 1;
        }
        else
        {
            int result = x + SumForm1TOX(x - 1);
            return result;
        }
    }
    
  • 方法三
    //公式法
    public int SumForm1TOX(int x)
    { 
    	return (x + 1) * x / 2;
    }
    

5. 空白实例

  • 使用空白实例系统会报错
    Form f = null;
    f.ShowDialog();
    
  • 报错
    在这里插入图片描述

6. 类型、变量和方法

类型

  • 简介:类型又称数据类型,是数据在内存中存储时的“型号”。
  • 类型在C#语言中的作用(慢慢了解,可以看说明书)
    • 存储此类型变量所需的内存空间大小
    • 此类型的值可表示的最大、最小值范围
    • 此类型所包含的成员(如方法、属性、事件等)
    • 此类型由何基类派生而来
    • 程序运行的时候,此类型的变量在分配在内存的什么位置
    • 此类型所允许的操作(运算)
  • C#语言的类型系统
    • C#的五大数据类型
      • 类(Classes ): 如Windows, Form, Console, String
      • 结构体(Structures ) :如Int32, Int64, Single, Double
      • 枚举(Enumerations ):如HorizontalAlignment, Visibility
      • 接口(Interfaces)(暂时不做研究)
      • 委托(Delegates)(暂时不做研究)
    • C#类型的派生谱系
      在这里插入图片描述
      • 上面的蓝色关键字为数据类型,也是最基本的数据类型
      • 下面的黑色关键字为定义数据类型的关键字
      • 面试询问C#的数据类型,满分回答: 分为引用类型和值类型两种,引用类型里面包含类、接口和委托类型,值类型分为结构体和枚举类型,他们共同以Object为基类型。
    • 判断数据类型的三个方法
      • 方法一
        Type myType = typeof(Form);
        Console.WriteLine(myType.FullName); //显示Form类型的全名,可在文档里检索
        
      • 方法二
        Type myType = typeof(Form);
        Console.WriteLine(myType.IsClass);  //让系统判断这个是不是类型是不是类
        
      • 方法三
        放到Form上,右键->转到定义 查看他是不是啥类型
    • 枚举类型举例
          Form f = new Form();
          f.WindowState = FormWindowState.Minimized;  //选择以怎样的方式打开窗口:最小化,正常,最大化
          f.ShowDialog();
      
      三种选项:以最小化打开、正常窗口打开和最大化打开
      在这里插入图片描述

变量

  • 简介:变量的用途是存储数据。实际上变量不仅表示了存储位置,并且每个变量都有一个类型,以决定什么样的值能够存入变量。

  • 变量的类型

    • 静态变量
      public static int Amount;
      
      具体介绍看大佬的文章:链接: link
    • 实例变量
      static void Main(string[] args)
      {
          Student stu = new Student();
          stu.Age = 1;
          Console.WriteLine(stu.Age);
      }
      
      class Student
      {
          public int Age;
      }
      
    • 数组元素
      int[] arr = new int[100];//注意这个创建方式和C语言的区别
      arr[0] = 1;
      Console.WriteLine(arr[0]); 
      
    • 值参数变量
      public double Add(double a, double b)   //double a, double称为值参数变量
      {
          double result = a + b;
          return result;
      }
      
    • 引用参数变量(后面讨论)
      public double Add(ref double a, ref double b)   //double a, double b前面用ref修饰为引用参数变量
      {
          double result = a + b;
          return result;
      }
      
    • 输出参数变量(后面讨论)
      public double Add(out double a, out double b)   //double a, double b前面用out修饰为输出参数变量
      {
          double result = a + b;
          return result;
      }
      
    • 局部变量
      static void Main(string[] args)
      {
           //局部变量:方法体内声明的变量
          int x;
          x = 100;
          Console.WriteLine(x);
      }
      
      • 局部变量就是方法体(函数体)里声明的变量· 变量的声明
      • 狭义的变量指局部变量
      • 局部变量在栈上分配内存
  • 变量的声明
    有效的修饰符组合opt 类型 变量名 初始化器opt
    (opt表示可以省略)

    public static int a = 20;	
    int b = 20;
    int c = 10, d = 20;	//推荐这样写,可读性差
    
  • 总结来说: 变量是以变量名所对应的内存地址为起点、以其数据类型所要求的存储空为长度的一块内存区域。

  • 值类型和引用类型
    具体介绍看大佬的文章:链接: link

  • C#中变量的默认值为0

方法

方法(函数)是处理数据的逻辑,又称“算法”。
参考链接:链接: link

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值