• C#基础学习笔记


    一、数据类型、变量与常量

    1、程序的基本任务是:对数据进行处理

    2、数据分为变量与常量

    ​ 变量的值可以改变,本质上是内存的空间,用来存储信息

    ​ 常量的值是固定的,直接写出来的,称字面常量

    3、变量声明与赋值

    public class Test
    {
        public static void Main()
        {
            int x,y=8;//
            double d=3.1415;//
            bool b=true;//
            String s="Hello";//
            Person p=new Person();//声明且赋值
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    ​ 变量命名(标识符)要遵守如下的规则:

    ​ (1)不能是C#关键字

    ​ (2)由字母、数字、下划线构成(不建议使用下划线,最好使用大小写区分)

    ​ (3)第一个字符必须是字母或下划线

    ​ (4)不要太长,一般不超过31个字符为宜

    ​ (5)变量名最好不要与库函数名、类名相同

    ​ (6)C#是大小写敏感的

    4、数据类型的概念

    int age=5;
    Label1.Left+=5;
    Timer1.Enabled=true;
    Text1.Text="Hello";
    DateTime.Now
    
    • 1
    • 2
    • 3
    • 4
    • 5

    数据类型【本质上】:是数据的存储方式及其能参与的运算的抽象

    请添加图片描述

    值类型:int,double,Point,Size,DateTime

    引用类型:Button,Label,Book,Person

    int a=5;
    int b=a;
    
    Person p=new Person();
    Person p2=p;
    
    DataTime t=new DateTime(2018,1,1);
    DataTime t12=t;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    都属于类型:

    int a=5;
    DateTime t=new DateTime(2020,12,31);
    Button btn=new Button();
    double.Perse();
    
    • 1
    • 2
    • 3
    • 4

    都属于Object:

    Lable1.Text=age.ToString();
    
    • 1

    类型细分:

    ​ 值类型包括:简单类型、结构类型、枚举类型

    ​ 引用类型包括:类类型、接口类型、委托类型、数组类型

    ​ 等价类型:int、double、bool、string

    ​ 简单类型:

    ​ 整数类型:

    ​ 有符号:sbyte、short、int、long

    ​ 无符号:byte、ushort、uint、ulong

    ​ 字符类型:char

    ​ 实数类型:

    ​ float、double

    ​ 十进制类型:

    ​ Decimal

    		布尔类型:
    
    • 1

    ​ bool

    ​ 逻辑类型:bool类型适于逻辑运算,一般用于程序流程控制;bool类型数据只允许取值TRUE或FALSE,不可以0或非0的整数值代替TRUE和FALSE

    ​ 字符类型:char型数据用来表示通常意义上的“字符”;字符常量是用单引号括起来的单个字节;C#字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示;C#余元中还允许使用转义字符’\‘来将其后的字符转变其他的含义

    转义字符
    \uxxxx      1到4位十六进制数所表示的字符
    \'          单引号字符
    \"          双引号字符
    \\          反斜杠字符
    \r          回车
    \n          换行
    \f          走纸换页
    \t          横向跳格
    \b          退格
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ​ 字符串类型:String 是引用类型,但对字符串常量有特殊处理:“abcd1234”、@“abcd”、Pqrst"

    ​ 使用数据类型要注意:引用类型与值类型是由其类型定义的,而不是由其使用决定的

    二、运算符与表达式

    运算符
    算术运算符     +,-,*,/,%,++,--
    关系运算符     >,<,>=,<=,==,!=
    逻辑运算符     !.&,|,^,&&,||
    位运算符       &,|,^,~,>>,<<
    赋值运算符     =
    扩展赋值运算符  +=,-=,*=,/=
    字符串连接运算符  +
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    扩展赋值运算符

    运算符用法举例等效的表达式
    +=a+=ba=a+b
    -=a-=ba=a-b
    *=a*=ba=a*b
    /=a/=ba=a/b
    %=a%=ba=a%b
    &=a&=ba=a&b
    |=a|=ba=a|b
    ^=a^=ba=a^b
    <<=a<<=ba=a<
    >>=a>>=ba=>>b

    当有不同种类的混合运算时:int→long→float→double

    编程提示

    类型的转换
        字符串转成数值;
    		double.Parse(s) int.Parse(s)
        数字转成字符串:
            10.ToString()
            ""+10
        使用Convert
            Convert.ToInt32(textbox.1Text)
            Convert.ToDouble("123.45")
            Convert.ToDateTime("2009-10-01 14:00")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    三、流程控制语句

    1、简单语句

    System.Console.Writer("Hello World");
    b=a>0?a:-a;
    s=TextBox1.Text;
    d=int.Parse(s);    
    
    • 1
    • 2
    • 3
    • 4

    2、分支语句----if

    if(条件表达式)
        语句块
    else
        语句块
        
    if((year%4==0&&year%100!=0)||(year%400==0))
        Console.WriteLine(year+"是闰年");
    else    
    	Console.WriteLine(year+"不是闰年");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3、多分支语句------switch

    switch(exp)
    {
            case const1;
            	statement1;
            	break;
            case const2;
                statement2;
            	break;
            ......
            case constN;
            	statementN;
            	break;
            [default :
            	statement_default;
            	break;]
    }
    
    变量除了整形、枚举型,还可以用字符串
    不能随便贯穿,必须有break;(除非几个case连起来,中间没有别的语句)    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    4、循环语句

    语句在循环条件满足的情况下,反复执行特定代码

    循环五要素:初始化部分、循环条件部分、循环体部分、迭代部分、“结束后处理”

    s=0;
    for(int i=1;i<=100;i++) s+=i;
    Console.Write(s);
    
    • 1
    • 2
    • 3

    ​ 循环语句for

    语法格式:
    for(init_statement;test_exp;alter_statement)
    {
        body_statement
    }
    
    应用举例
    int result=0;
    for(int i=0;i<=100;i++)
    {
        result+=i;
    }    
    System.Console.Write("result="+result);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    ​ 循环语句while

    语法格式:
    [init_statement]
    while(test_exp)
    {
        body_statemet;
        [alter_statement;]
    }
    
    应用举例
    int result=0;
    int i=1;
    while(i<=100)
    {
        result+=1;
        i++;
    }
    System.Console.Write("result"+result);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    ​ 循环语句do/while

    至少执行一次
    语法格式
    [init_statement]
    do{
        body_statement;
        [alter_statement;]
    }while(test_exp);
    
    应用举例
    int result=0;
    int i=1;
    do{
        result+=1;
        i++;
    }while(i<=100)
    System.Console.Write("result="+result);    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    ​ 跳转语句

    break语句:结束循环(相当于VB中的Exit Do,Exit For)
    continue语句:进入下一次循环
    goto语句:跳转到某个语句标号
    try{}catch{}语句:异常的捕获
    
    • 1
    • 2
    • 3
    • 4

    四、数组

    1、数组是多个相同数据的组合

    数组属于引用类型

    一维数组的声明方式:

    int[] a1;
    double []b;
    Mydate []c;
    
    C#中在声明数组的时候不能指定其长度(数组的个数)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、数组初始化

    动态初始化
    数组定义与为数组元素分配空间并赋值的操作分开进行
    int []a=new int[3];
    a[0]=3;
    a[1]=9;
    a[2]=8;
    
    MyDate []dates;
    dates=new MyDate[3];
    dates[0]=new MyDate(22,7,1964);
    dates[1]=new MyDate(1,1,2000);
    dates[2]=new MyDate(22,12,1964);
    
    
    静态初始化
    在定义数组的同时就为数组元素分配空间并赋值
    int[] a={3,9,8};
    int[] a=new int[]{3,9,8};
    
    MyDate[] dates={
        new MyDate(22,7,1964);
        new MyDate(1,1,2000);
    }
    
    默认初始化
    数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    3、数组元素的引用

    ​ 数组元素的引用方式

    ​ index为数组元素下标,可以是整型常量或整型表达式

    ​ 每个数组都有一个属性Length指明它的长度,例如:a.Length指明数组a的长度(元素个数)

    4、foreach语句

    foreach可以方便地处理数组、集中元素
    int[] ages=new int[10];
    foreach(int age in ages)
    {}
    foreach是只读式的遍历
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5、复制数组

    Array.Copy方法提供了数组元素复制功能:

    //源数组
    int source={1,2,3,4,5,6};
    //目的数组
    int[] dest={10,9,8,7,6,5,4,3,2,1};
    //复制源数组中从下标0开始的source.length个元素到目的数组,从下标0的位置开始存储
    Array.Copy(source,0,dest,0,source.Length);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    6、多维数组

    二维数组举例
    int [,] a={{1,2,3},{3,4,0},{5,6.7}};
    
    可以用a.GetLength(0),a.GetLength(1)来获得各个维度的长度
    
    • 1
    • 2
    • 3
    • 4

    7、交错数组

    C#中交错数组是数组的数组
        
    int [][]t=new int[3][];
    t[0]=new int[2];
    t[1]=new int[4];
    t[2]=new int[3];
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    redis的原理和源码-主从复制的原理介绍
    计算机算法分析与设计(8)---图像压缩动态规划算法(含C++)代码
    oracle linux8.8上安装oracle 19c集群
    java-net-php-python-jsp网络工程师在线测试系统计算机毕业设计程序
    通过Git Bash将本地文件上传到本地github
    第四章 c数组
    MySQL 基础
    CMake | 编辑规范
    ​力扣解法汇总640-求解方程
    上新啦!请查收云原生虚拟数仓 PieCloudDB 十月动态
  • 原文地址:https://blog.csdn.net/qq_57656148/article/details/127733959