河北对口计算机高考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&

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/bicheng/84276.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# dll版本冲突解决方案

随着项目功能逐渐增加&#xff0c;引入三方库数量也会增多。不可避免遇到库的间接引用dll版本冲突&#xff0c;如System.Memory.dll、System.Buffer.dll等。编译会报警&#xff0c;运行可能偶发异常。 可使用ILMerge工具合并动态库&#xff0c;将一个库的多个dll合并为一个dll。…

深度解析:etcd 在 Milvus 向量数据库中的关键作用

目录 &#x1f680; 深度解析&#xff1a;etcd 在 Milvus 向量数据库中的关键作用 &#x1f4a1; 什么是 etcd&#xff1f; &#x1f9e0; Milvus 架构简介 &#x1f4e6; etcd 在 Milvus 中的核心作用 &#x1f527; 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…

随机访问介质访问控制:网络中的“自由竞争”艺术

想象一场自由辩论赛——任何人随时可以发言&#xff0c;但可能多人同时开口导致混乱。这正是计算机网络中随机访问协议的核心挑战&#xff1a;如何让多个设备在共享信道中高效竞争&#xff1f;本文将深入解析五大随机访问技术及其智慧。 一、核心思想&#xff1a;自由竞争 冲突…

设计模式作业

package sdau;public class man {public static void main(String[] args) {show(new Cat()); // 以 Cat 对象调用 show 方法show(new Dog()); // 以 Dog 对象调用 show 方法Animal a new Cat(); // 向上转型 a.eat(); // 调用的是 Cat 的 eatCat c (Cat)a…

Kaspa Wasm SDK

文章目录 1. 简要2. github地址 1. 简要 kaspa wallet SDK&#xff0c;在官方WASM基础上封装了应用层的方法&#xff0c;简便了WASM的初始化及调用。 核心功能包括如下&#xff1a; 账户地址生成及管理Kaspa Api 和 Kasplex Api的封装kaspa结点RPC 封装P2SH的各个场景script封…

ROS mapserver制作静态地图

ROS mapserver制作静态地图 静态地图构建 1、获取一个PNG地图&#xff0c;二值化 2、基于PNG地图&#xff0c;生成PGM地图&#xff0c;可以通过一些网站在线生成&#xff0c;例如Convertio 文件配置 1、将文件放置于/package/map路径下。 2、编写yaml文件&#xff0c;如下…

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…

浏览器工作原理05 [#] 渲染流程(上):HTML、CSS和JavaScript是如何变成页面的

引用 浏览器工作原理与实践 一、提出问题 在上一篇文章中我们介绍了导航相关的流程&#xff0c;那导航被提交后又会怎么样呢&#xff1f;就进入了渲染阶段。这个阶段很重要&#xff0c;了解其相关流程能让你“看透”页面是如何工作的&#xff0c;有了这些知识&#xff0c;你可…

DrissionPage爬虫包实战分享

一、爬虫 1.1 爬虫解释 爬虫简单的说就是模拟人的浏览器行为&#xff0c;简单的爬虫是request请求网页信息&#xff0c;然后对html数据进行解析得到自己需要的数据信息保存在本地。 1.2 爬虫的思路 # 1.发送请求 # 2.获取数据 # 3.解析数据 # 4.保存数据 1.3 爬虫工具 Dris…

android 布局小知识点 随记

1. 布局属性的命名前缀规律 与父容器相关的前缀 layout_alignParent&#xff1a;相对于父容器的对齐方式。 例如&#xff1a;layout_alignParentTop"true"&#xff08;相对于父容器顶部对齐&#xff09;。layout_margin&#xff1a;与父容器或其他控件的边距。 例如…

GeoDrive:基于三维几何信息有精确动作控制的驾驶世界模型

25年5月来自北大、理想汽车和 UC Berkeley 的论文“GeoDrive: 3D Geometry-Informed Driving World Model with Precise Action Control”。 世界模型的最新进展彻底改变动态环境模拟&#xff0c;使系统能够预见未来状态并评估潜在行动。在自动驾驶中&#xff0c;这些功能可帮…

Java高频面试之并发编程-25

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天又来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;CAS都有哪些问题&#xff1f;如何解决&#xff1f; CAS 的问题及解决方案 CAS&#xff08;Compare and Swap&#xff0…

从碳基羊驼到硅基LLaMA:开源大模型家族的生物隐喻与技术进化全景

在人工智能的广袤版图上&#xff0c;一场从生物学羊驼到数字智能体的奇妙转变正在上演。Meta推出的LLaMA(Large Language Model Meta AI)系列模型&#xff0c;不仅名字源自美洲驼(llama)&#xff0c;更以其开源特性和强大性能&#xff0c;引领了开源大模型社区的“驼类大爆发”…

可下载旧版app屏蔽更新的app市场

软件介绍 手机用久了&#xff0c;app越来越臃肿&#xff0c;老手机卡顿成常态。这里给大家推荐个改善老手机使用体验的方法&#xff0c;还能帮我们卸载不需要的app。 手机现状 如今的app不断更新&#xff0c;看似在优化&#xff0c;实则内存占用越来越大&#xff0c;对手机性…

Python_day47

作业&#xff1a;对比不同卷积层热图可视化的结果 一、不同卷积层的特征特性 卷积层类型特征类型特征抽象程度对输入的依赖程度低层卷积层&#xff08;如第 1 - 3 层&#xff09;边缘、纹理、颜色、简单形状等基础特征低高&#xff0c;直接与输入像素关联中层卷积层&#xff08…

比较数据迁移后MySQL数据库和达梦数据库中的表

设计一个MySQL数据库和达梦数据库的表数据比较的详细程序流程&#xff0c;两张表是相同的结构&#xff0c;都有整型主键id字段&#xff0c;需要每次从数据库分批取得2000条数据&#xff0c;用于比较&#xff0c;比较操作的同时可以再取2000条数据&#xff0c;等上一次比较完成之…

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…

Linux 文本比较与处理工具:comm、uniq、diff、patch、sort 全解析

在类 UNIX 操作系统&#xff0c;特别是 Linux 系统中&#xff0c;命令行提供了一整套强大的文本处理工具&#xff0c;这些工具对于文件差异对比、内容筛选、文本排序以及源代码管理尤为重要。今天&#xff0c;我们将结合真实示例&#xff0c;深入介绍并实战演示 comm、uniq、di…

6月6日day46打卡

通道注意力(SE注意力) 知识点回顾&#xff1a; 不同CNN层的特征图&#xff1a;不同通道的特征图什么是注意力&#xff1a;注意力家族&#xff0c;类似于动物园&#xff0c;都是不同的模块&#xff0c;好不好试了才知道。通道注意力&#xff1a;模型的定义和插入的位置通道注意力…

前端技能包

ES6 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><script>// 变量定义var a1;let b5; // 现在使用let 定义变量// 对象解构let person{&quo…