当前位置: 首页 > news >正文

河北对口计算机高考C#笔记(2026高考适用)---持续更新~~~~

C#笔记

C#发展史
  1. 1998年,C#发布第一个版本。
  2. 2002年,visual studio开发环境推出
C#的特点

1.语法简洁,不允许直接操作内存,去掉了指针操作

2.彻底面向对象设计。

3.与Web紧密结合。

4.强大的安全机制,语法错误提示,引入垃圾回收器机制。

5.兼容性。

6.完善的错误,异常处理机制。

.NET(平台)

面向网络支持各种用户终端的开发环境

  1. 公共语言运行时(CLR): 中间语言代码,负责将不同的编程语言的编译结果统一。
  2. 类库:系统封装好的工具包,可以直接拿来使用。

.NET发展

  1. 2000 比尔盖茨提出构想
  2. 2002 微软发布了.NET Framework1.0
  3. 2003 微软发布了.NET Framework1.1
  4. 2005 微软发布了.NET Framework2.0
  5. 2006 微软发布了.NET Framework3.0
  6. 2010 微软发布了.NET Framework4.0
  7. 2020 .Net5.0发布
Visual Studio项目管理

1.解决方案:包含多个不同类型的项目,是一个项目集合,大的文件夹。

.Net中常见的文件类型

​ .sln:解决方案文件

​ .csproj:项目文件

​ .cs:C#源码文件

​ .resx:资源文件

​ .aspx:网页文件

​ .asmx:XML Web文件

​ .config:配置文件

​ .suo:解决方案用户选项

命名空间(namespace):命名控件在C#中起到组成程序的作用,也可以作为外部程序调用的凭证。

:class为类的关键字,每个对象都属于一个类,类是对象的模板。

关键字:系统提前赋予特定意义的一些单词。

标识符

开发过程中,需要自定义命名的,如变量名,常量名,对象名,方法名,函数名等都属于标识符。

命名规则:由字母、下划线、数字组成,且数字不能开头,不能使用关键字。

Main方法(程序入口)

C#程序中的Main方法必须声明为static,并且区分大小写

 static void Main(string[] args){//程序代码}
/*static:静态修饰符
void:表示无返回值
string[] args:表示参数为数组*/
注释语句

功能:注释起解释代码的作用,不会参与代码的编译工作

  1. 行注释:以“//”开头,将一整行代码注释掉
  2. 块注释:以“/* ”开头,中间包含注释内容,以“ */”结尾
输入方法和输出方法
  1. 输入方法:Console.Readline() ------从键盘获取一行字符串

    ​ Console.Read() -------从键盘获取一个字符

  2. 输出方法:Console.WriteLine() -----将数据输出至屏幕并且加上一个换行符

    ​ Console.Write() -----将数据输出至屏幕

    注意:

    1.同一行代码可以书写多条语句。

    int a; int b; int c;
    

    2.将一条语句拆分成多行书写。

    Console.WriteLine
    ("你好");
    

数据类型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

值类型
简单类型
  1. 整数类型

    类型标识符说明占用位数取值范围
    sbyte带符号字节型8-27~27-1
    byte无符号字节型80~2^8-1
    short带符号的短整型16-215~215-1
    ushort无符号的短整型160~2^16-1
    int带符号的整型32-231~231-1
    uint无符号整型320~2^32-1
    long带符号的长整型64-263~263-1
    ulong无符号的长整型640~2^64-1
  2. 实数类型

    类型标识符说明占用位数精度
    float单精度浮点数326~7位
    double双精度浮点数(取值范围最大)6415~16位
    decimal固定精度浮点数(精度最高)12828~29位

    注意:

    ​ 1.包含小数点的数值会被默认位double类型。

    ​ 2.在数值后边加F或f可以强制指定为float类型。

    ​ 3.在数值后边加M或m可以强制指定为decimal类型。

    Double double1 = 3.14;
    float float1 = 3.14f;
    decimal decimal1 = 3.1415926m;
    
  3. 字符类型

    采用Unicode编码格式,每个字符占用两个字节。

    定义字符类型使用char关键字,值使用单引号(‘’)括起来。

    char chr1 = 'a';
    char chr2 = '你';
    

    注意:

    ​ 1.如果使用双引号,即使包含一个字符也会认定为字符串类型,字符类型是基本数据类型,字符串类型为用引用类型。

  4. 布尔类型

    Boolean flag1 = true;
    Boolean flag2 = false;
    

    注意:

    布尔类型不能直接转换为int类型。

复杂类型
  1. 结构类型

    将分散简单变量整合为一体,体现数据之间的内在联系。

    //定义语法
    struct 结构名称
    {数据类型 字段名1;数据类型 字段名2;...}//定义一个具有姓名和年龄的结构类型Student
    struct Student
    {public string name;public int age;public char sex;
    }
    
  2. 枚举类型

    指程序中某个变量具有一组确定的值,通过枚举可以将其值一一列出来。

    //定义枚举
    enum 枚举名{枚举成员1,枚举成员2,...
    }enum season
    {spring,summer,autumn,winter
    }
    
引用类型
object类型

object类型是所有类型(值类型和引用类型)的基类,C#中所有的类型都是直接或者间接继承object,一个 object类型的变量可以赋任何类型的值。

int x = 100;
object obj;
obj=x;
Object obj2 = "你好";
Console.WriteLine(obj);
Console.WriteLine(obj2);
string类型

字符串对象,表示一个Unicode字符序列。String和string都能定义字符串变量

String str = "Hello World";
string str2 = "你好";
Console.WriteLine("{0},{1}",str,str2);
值类型与引用类型的区别

值类型:栈

引用类型:堆

类型转换
隐式转换

不需要加以声明就可以进行的转换,原类型取值范围包含在目标类型中,就可以实现隐式转换。

小--------->大

int a = 12345;
long b = a;
显示转换(强制转换)
//(类型标识符)表达式
float a = 123.45f;
Console.WriteLine((int)a);
//实数类型转换为整数类型通常辉出现精度丢失问题
使用方法进行数据类型转换

1.Parse方法:可以将字符串转换为数值型。

//语法:数值类型名称.Parse(字符串表达式)
int a = int.Parse("123456");
Console.WriteLine(a);int pwd = int.Parse(Console.ReadLine());
Console.WriteLine(pwd);

2.Convert类的方法:将一种基本数据类型转换为另一种基本数据类型

//语法:Convert.转换方法(值)
int a;
a = Convert.ToInt32("123");
Console.WriteLine(a);int pwd;
pwd = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(pwd);
装箱与拆箱

实现值类型与引用类型的相互转换。

  1. 装箱转换(将一个值类型的数据转换为对象类型的数据)

    int i = 10;
    object obj = i;
    
  2. 拆箱转换(将一个引用类型的数据转换为值类型数据)

    int i = 10;
    object obj = i;
    int j = (int)obj;
    
变量与常量
常量
  • 概念:在程序运行过程中,其值不会改变的量。

  • 分类:

    • 直接常量(一个固定值)

      1.整型常量:16,28L
      2.浮点常量:3.14,4.25f,8.997m
      3.字符常量:'a','0'
      4.字符串常量:"abc","HelloWorld"
      5.布尔常量:true,false
      
    • 符号常量

      //定义语法:常量名全大写
      //const 数据类型 常量名 = 常量值
      const float PI = 3.14;/*注意:
      1.const是定义常量的关键字
      2.常量名推荐全部大写
      3.常量一旦赋值,不可修改
      4.常量的赋值只能适用常量和常数,不能使用变量
      */
      
变量
  • 概念:在程序运行过程中其值可以不断改变的量。

  • 变量名:

    • 只能使用数字、字母、下划线组成,且数字不能开头
    • 不能使用关键字
    • 严格区分大小写
    • 如果使用关键字作为变量名,开头需加@
  • 变量的定义

    //语法:
    //数据类型 变量名[ = 值];
    //可以再定义变量时直接赋值,也可以后期赋值。
    int a = 13;
    int b;
    b = 3+5;
    
  • 变量的作用域(定义变量的适用范围)

    • 成员变量:在类体中定义的变量称为成员变量,在整个类体中都能用。
    • 局部变量:在类的方法中定义的变量,只能在方法内部使用。
运算符与表达式
  1. 算数运算符

    符号意义示例结果
    +加法运算12+3446
    -减法运算88-2365
    *乘法运算3*26
    /除法运算
    (运算符左右都为整型,做整除运算)
    10/3.03.33333
    %取余10%31
  2. 自增与自减运算符

    • 自增运算(++)使操作数的值加1

    • 自减运算(–)使操作数的值减1

      int i = 1;
      i++;
      Console.Writeline(i);       //i=2
      i--
      Console.Writeline(i);       //i=1
      
    • 位置规则:

      • 前置形式:先进行自增或自减再进行运算

      • 后置形式:先进行运算再进行自增或自减

          int a = 5, b, c;b = a++;Console.WriteLine(a);      //a=6    b=5c = ++a;                 //c=7Console.WriteLine(a);   //a=7Console.WriteLine(b);   //b=5Console.WriteLine(c);   //c=7
        
  3. 字符串运算符

    1. +:拼接字符串,合并成新字符串。

       String a = "123";int b = 465;Console.WriteLine(a + b);  //123456
      
  4. 赋值运算符

    /*变量名 = 值/表达式
    =:赋值运算符,将等号右边的值赋值给等号左边的变量或者常量*/string a;
    a = "Hello World";
    int i;
    i = (int)12.3;**赋值复合运算符**| 符号   | 意义         | 示例                          |
    | ------ | ------------ | ----------------------------- |
    | **+=** | **加赋值**   | **a+=b  等同于 a=a+b**        |
    | **-=** | **减赋值**   | **a-=b  等同于  a=a-b**       |
    | ***=** | **乘赋值**   | **a'**='b  等同于  a=a*'*'b** |
    | **/=** | **除赋值**   | **a/=b  等同于  a=a/b**       |
    | **%=** | **取模赋值** | **a%=b  等同于  a=a%b**       |
    | <<=    | 左移赋值     | a<<=b  等同于  a=a<<b         |
    | >>=    | 右移赋值     | a>>=b  等同于  a=a>>b         |
    | &=     | 与赋值       | a&=b  等同于  a=a&b           |
    | ^=     | 异或赋值     | a^=b  等同于  a=a^b           |
    | \|=    | 或赋值       | a\|=b  等同于  a=a\|b         |
  5. 关系运算符

    概念:比较两个运算数的关系,结果为true和false

    符号意义
    <小于
    <=小于等于
    >大于
    >=大于等于
    ==等于
    !=不等于
  6. 逻辑运算符

    符号意义示例
    逻辑非(取反)!(2<3)------>false
    &&逻辑与(同时为真结果为真,否则为假)3>2 && 5<7 ------->true
    ||逻辑或(有一个为真最终结果即为真)8<9 || 9=10 ------->true
    //闰年的判断:闰年年份可以被4整除并且不能被100整除,或者能被400整除
    year%4==0    //能被4整除
    year%100!=0    //不能被100整除
    year%400==0    //能被400整除
    year%4==0 && year%100!=0 || year%400==0
  7. 条件运算符|三目运算符|三元表达式|行状判断语句

    格式:表达式1?表达式2:表达式3

    逻辑:表达式结果为真,执行表达式2,为假执行表达式3.

    int a,b,c;
    a = 16;
    b = 19;
    a>b?c=a?c=b;
    
  8. 运算符优先级

    运算符类别运算符优先级
    单目运算++、–、!1
    算数运算符*、/、%2
    +、-3
    关系运算符>、>=、<、<=4
    ==、!=5
    逻辑运算符&&6
    ||7
    条件运算符?:8
    赋值运算=9
控制结构
顺序结构
  1. 输入语句:

    Console.Read();         //返回用户从控制台上输入数据的首字符的ASCII码
    Console.ReadLine();		//将用户输入的一行信息用string类型的字符串返回
    
  2. 输出语句:

    Console.WriteLine();	//输出后自动换行
    Console.Write();		//输出后不换行
    
分支结构
  1. 单分支

    /*语法:if(判断表达式){代码块
    }*///输入一个年龄,判断是否成年Console.Write("请输入年龄:");int age = int.Parse(Console.ReadLine());if (age >= 18) {Console.WriteLine("成年");}Console.ReadKey();
    
  2. 双分支

    /*语法:
    if(判断表达式){代码块1
    }else{代码块2
    }
    *///输入一个年龄,判断是否成年
    Console.Write("请输入年龄:");
    int age = int.Parse(Console.ReadLine());
    if (age >= 18)
    {Console.WriteLine("成年");
    }
    else {Console.WriteLine("未成年");
    }Console.ReadKey();
    
  3. 多分支1

    /*
    if(判断表达式1){代码块1
    }else if(判断表达式2){代码块2
    }...else{代码块N
    }
    */
    //输入一个年龄,如果年龄在0~18岁为儿童,19~60成年人,60以上为老人Console.Write("请输入年龄:");int age = int.Parse(Console.ReadLine());if (age >= 0 && age <= 18){Console.WriteLine("儿童");}else if (age > 18 && age <= 60){Console.WriteLine("成人");}else if (age > 60){Console.WriteLine("老人");}else {Console.WriteLine("输入有误");}Console.ReadKey();
  4. 多分支结构2

    /*
    语法:switch(表达式){case 常量表达式1:语句1;break;case 常量表达式2:语句2;break;...default:语句n;break;
    }
    *///输入学生成绩,判断改成绩处于哪个阶段,100以上为满分,90以上为优,80分以上为良好,60以上为及格,否则为不及格。Console.Write("请输入成绩:");int score = int.Parse(Console.ReadLine());switch (score/10) {case 10:Console.WriteLine("满分");break;case 9:Console.WriteLine("优秀");break;case 8:Console.WriteLine("良好");break;case 7:								//case 7中没有break语句,程序不会跳出												   结构,直接转入下一个分支case 6:Console.WriteLine("及格");                                         break;default:Console.WriteLine("不及格");break;}Console.ReadKey();
    }
    

    总结:

    1. if判断后的表达式结果为布尔类型,switch判断后的表达式为整型。
    2. 分支结构只会执行一个分支
    3. switch…case语句中不加break,程序不会跳出判断结构。、
    4. 多分支结构中注意判断条件的顺序。
循环结构
  1. for循环

    /*语法:
    for(循环变量初始化;判断语句;循环变量的更新){循环体
    }
    执行顺序:
    1.初始化循环变量
    2.判断循环条件是否满足
    3.满足		不满足
    4.执行循环体   跳出循环
    5.更新循环变量
    6.判断循环条件是否满足
    ....
    */
    for(int i=0;i<=10;i++){Console.WriteLine(i);
    }/*注意:
    1.for循环中三个表达式都可以省略,分号不可以省略
    2.如果在循环结构中省略变量初始化,那么需要将变量初始化放在循环结构前边,否则报错
    3.如果在循环结构中省略判断条件,那么会陷入死循环,无法自动中止。
    4.如果在循环结构中省略变量更新,也会陷入死循环。
    5.如果循环结构中的所有表达式都省略,也会陷入死循环。
    */
    //打印1~100之间所有的奇数//1~100所有数字找到for (int i = 1; i <= 100; i++){//判断当前的数字是否为奇数?if (i % 2 == 0){Console.WriteLine(i);}}//计算10的阶乘			1*2*3*4*5*6*7*8*9*10
    //计算1~100之间所有的奇数之和?     1+3+5+7+9...
    
  2. while循环

    /*语法:
    while(循环条件){循环体
    }
    执行逻辑:循环条件为真执行循环体,循环条件为假不执行循环体(先判断后执行)
    */
    //使用while实现登录系统,重新输入账户密码操作//登陆系统string user="root&

相关文章:

  • [KCTF]CORE CrackMe v2.0
  • C# 表达式和运算符(求值顺序)
  • C# winform教程(二)----checkbox
  • Python----大模型(大模型基础)
  • 拉力测试cuda pytorch 把 4070显卡拉满
  • EasyRTC音视频实时通话功能在WebRTC与智能硬件整合中的应用与优势
  • Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合
  • AI 边缘计算网关推动各行业的数字化转型和智能化升级
  • 十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
  • 【OpenCV】相机标定之利用棋盘格信息标定
  • games101 hw1
  • 2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
  • WebRTC调研
  • CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
  • 初版BL程序一些细节整理(碎碎念)
  • Rust 学习笔记:关于共享状态并发的练习题
  • UNECE R152——解读自动驾驶相关标准法规(AEB)
  • 【向量库】Weaviate概述与架构解析
  • 0day同步!昇思MindSpore框架成功适配面壁MiniCPM4.0模型并上线魔乐社区
  • 树莓派4B, ubuntu20.04, 安装Ros Noetic[踩坑记录]
  • 免费网站的资源可以发公众号吗/会计培训班
  • 做优化排名会不会影响网站速度/企业网站优化方案
  • 福州网站建设多少钱/搜索引擎seo外包
  • 什么公司做网站最好/外贸是做什么的
  • 住房和城乡建设部网站园林一级/优化什么
  • 做爰全过程免费的视频的网站/搜索引擎优化的名词解释