C#基础复习

【namespace】

命名空间 

。net有众多类,全放一起,无法快速检索到需要的类。

                        所以用【点】来区分,注意【点】不是包含关系。

解决类重名问题时,要用完全限定名来区分。【完整命名空间路径】

配合引用:

字段

类内部的全局变量。外界不能直接访问读写。

字段加public后,这种设计不合理,而且控件也不能正确显示。

【static】作用是所有派生的子对象,都使用同一个变量值。

属性

只作为与外界数据交换。间接地访问到字段。

通常对接收的数据做范围限制。只读,只写,只能某一段范围值。

也可以做日志刷新等动作。

方法

在C#里称:方法

在C语言里称:函数方法        实际它们是同一个东西,只是称呼不同。

在C#里【指针函数】的替代品是【委托】

【委托】:原因:主窗体内可以调用子窗体的方法,子窗体不能直接调用主窗体的方法

                        1:在他们2个类的公共区定义【委托类型】一般在子窗体内定义,因为主窗体可以直接访问子窗体。

                        2:主窗体绑定委托【将主窗体的方法绑定到委托】相当于制作快捷键

                        3:子窗体调用委托【相当于调用快捷键,快捷键会执行指向主窗体的方法】

委托绑定用【+=】【-=】和【=null;】

                        可以先 =null;然后再 +=绑定方法

【构造方法】

C#会自动提供默认构造方法。

在new的时候,生成无参的构造方法。【相当于种豆得豆】

当自己写了【有参构造方法】,那默认构造方法就会消失,需要手动添加。

【有参构造方法】相当于定制汽车的配置。内饰颜色,轮毂大小等。

【析构函数】

                        ~类型名()

                        {

                             日志;

                        }

【架构】

小型项目用3层架构: 老板》领导》员工

原材料是【老板,领导,员工】的公共区域。

宏观上看:输入跟输出,不用关心内部到底是怎样处理数据的。

                老板: new出原材料,传给领导。

                领导:按照老板的意愿,调用不同的员工对【原材料】加工。

                员工:输入原材料,再输出原材料。

        整个过程中:原材料都可能被他们new,赋值,丢弃。

【中大型框架】

【值】

用bit长度来存储数据,并且可能带符号。

同样的8bit数据,如果带符号,最高位是【正负符号bit】后7bit才是数值。

u8             byte           0~255               

u16           ushort        0~65535                unsigned   short

u32           uint            0~42 9496 7295

u64           ulong        0~1844 6744 0737 0955 1615

i8               sbyte        -128~127

i16             short         -32768~32767

i32             int             -2147483648~2147483647

i64            long           -9223372036854775808~9223372036854775807

i128

float          32bit小数       // 3.1415926f  // -7.654f
double      64bit小数       // 3.14159d   //可以不加d   -98.7654
decimal    128bit小数      -98.76m      3.14m
【注】int的bit长度受CPU位数限制。

Int64 e= unchecked((Int64)(0x8000000000000000));

int Bytelen = sizeof(decimal); // 16 byte【总长16字节】

【引用类型】:类,数组,        //整体赋值后会导致修改B后,A的值也会改变。

【值类型】:结构体,byte等

【赋值】

方向:从右到左

好的写法能方便数据分析和设备调试。

int num = 0b00001111;    //二进制写法  0b开头
num = 0b111 << 5;  // 1110 0000
num = 1 << 7;      // 1000 0000
 
// 常规用法
   decimal  pai = 3.14159f;
            pai = 12345m;
            pai = 255;
            pai = 0xff;    // 十六进制
            pai = 0B00001111;  //0x0f
 
textBox3.Text += "你好!" + '\u000d' + '\u000a';  // 0x0000 到 0xFFFF 

string txbuffer2 = "要发送的数据。";
            tx=Encoding.ASCII.GetBytes(txbuffer2);
            rx=Encoding.ASCII.GetString(tx);// 解码
                Encoding.UTF8.GetBytes
                Encoding.UTF8.GetString
                Encoding.BigEndianUnicode.GetBytes
                Encoding.BigEndianUnicode.GetString
                Encoding.UTF7.GetBytes
                Encoding.UTF7.GetString

【其他类型】

object           盒子类型 //数据是二进制保存的,相当于截取二进制长度
dynamic          动态类型,运行的时候确定;   dynamic d = 20;
char*            指针类型      char* cptr;   int* iptr;
bool     1bit    false,true//假,真  逻辑关系
char     16bit   相当于照片的编号,输入索引值,显示出对应文字/符号的照片 '\u0000'到'\uFFFF'
string           字符串类型,是连续的char的倍数长度,一般用于输出连续文字和符号
char[]         转string需要用 new string(char数组);
StringBuilder    可变字符串:StringBuilder 坤=new StringBuilder("坤",49);// 最大49字
DateTime       时间类型 string ATtime = DateTime.Now.ToString("ss's'ffff:");// xx秒xxxx毫秒
class            对象类型(参数引用类型传递)
struct           对象结构体类型(参数值类型传递)
enum            枚举类型(有明确范围个数的,比如星期)
union           共用体(最大类型容器)
byte[,]         数组类型(引用类型)new byte[8, 13];
 
sizeof()        获取数据类型的字节大小  byte  num = sizeof(int);
typeof()        返回class类型
nameof()        输出变量的名字。
&                取变量的地址  函数方法前需要 unsafe修饰,然后工程要开启不安全代码。
*                指针,指向地址,返回对象
?:                条件表达式
is            判断是否为某一类型
as            强制转换【不会抛出异常】  Object  obj = new string("维修电工!");
                                      string  str = obj as  string;
 
C# 摒弃了指针写法,用ref和out代替指针,函数指针用委托代替。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/cfqq1989/article/details/127291730

【数组】

static byte[,] buffer = new byte[8, 13];

【个】【层】【横】【纵】

【List】

泛型:第3方管家,来管理同类型的集合。

ArrayList        对【类型】集合的处理,遍历.Count,添加Add,删除Remove,插入Insert

Hashtable      【字典】添加Add,删除Remove,键Key,值Value,

                                     用于上位机与下位机string文本,调用方法。

                                     查找包含Contains,

                                     查找键ContainsKey

                                     查找值ContainsValue

this                子对象

                                public   void  setName(String  name)

                                {

                                        this.name = name;

                                }

<T>                泛型,占位符,相当于管家// 在集合内找出实例对象

                        定义

                                public     GetType<T> (T t)

                                {

                                        Console.WriteLine(t.GetType());

                                }

                        上层

                                p.GetType<int>(123);

【文本】

 char

;单引号表示字符【‘A’】

转义【‘\‘’】\r回车        \n换行        \t制表符        \f换页        \"双引号        \\反斜杠       

                  \b退格       \'单引号        '\uFF15'  十六进制的单字符

string

;【“用双引号表示”】

判断相同         Compare        -1   0    1

bool相等        Equals

格式化显示    Format        c货币,d负十进制,e指数,f小数,n小数,p百分比,x十六进制

                        DateTime.Now.Millisecond        F

截取        Substring

分块        Split

插入        Insert

删除        Remove

复制        Copy

替换        Replace(旧,新)

StringBuilder        减少内存开销

追加        Append

格式追加        AppendFormat

插入        Insert

删除        Remove

替换        Replace

【封装继承多态

封装:对象解释为【属性】【方法】,在C#里指【类class】

继承:重复性的代码用继承。先写个发动机,再继承给轿车,SUV等

多态:父类只有方法名,没有方法体。子类有方法体。将不同的子类裁剪给父亲,

           这样,父亲使用同一个方法名,能实现子类的特征。【常用 抽象,接口,虚方法

                public         virtual        void        方法A()

                public        override      void        方法A()

abstract        interface

【GDI】

画画

Graphics        画画师;

Pen   画笔 = new Pen(Color.Black,3);

Point        point1 = new Point(10,50);

Point        point2 = new Point(100,50);

画画师.DeawLine(画笔 , point1 , point2 );        // 直线

矩形        DraRectangle

椭圆        DrawEllipse

圆弧        DrawArc

扇形        DrawPie

多边形        DrawPolygon

【文本】        DrawString        文本,字体,颜色,位置

【图像】        DrawImage        

柱形        FillRectangle

【折线】        FillEllipse

饼形        FillPie

【路径】

绝对路径

相对路径

【特性】

STA    Thread 

[STAThread]

【线程】

Thread

启动        Start();

暂停        Suspend();

继续        Resume();

休眠        Sleep(毫秒);

结束        Abort();

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

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

相关文章

Android 中 调试和减少内存错误

Android 中 调试和减少内存错误 ASan 概述 官网连接&#xff1a; https://developer.android.com/ndk/guides/asan?hlzh-cn ASan API 27开始HWASan&#xff08;替换AScan&#xff09; 从 NDK r21 和 Android 10&#xff08;API 级别 29&#xff09;开始适用于 64 位 Arm 设…

微服务demo(三)nacosfeign

一、feign使用 1、集成方法 1.1、pom consumer添加依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.2.6.RELEASE</version></dependency&…

WEB APIS知识点案例总结

随机点名案例 业务分析: 点击开始按钮随机抽取数组中的一个数据,放到页面中点击结束按钮删除数组当前抽取的一个数据当抽取到最后一个数据的时候,两个按钮同时禁用(只剩最后一个数据不用抽了) 核心:利用定时器快速展示,停止定时器结束展示 <!DOCTYPE html> <html…

智慧公厕产品的特点、应用场景

随着城市化进程的加速和智能科技的不断发展&#xff0c;智慧公厕作为城市管理的重要组成部分&#xff0c;逐渐成为了现代城市的一道靓丽风景线。它的特点和应用场景备受人们关注和喜爱。 智慧公厕的特点有哪些呢&#xff1f;首先&#xff0c;它智能化的设备和感应技术为其特点…

华为昇腾认证考试内容有哪些

华为昇腾认证考试的内容主要包括理论知识和实践操作两部分。 在理论知识部分&#xff0c;考生需要掌握昇腾计算的基础知识&#xff0c;包括昇腾计算平台的架构、性能特点、应用场景等。此外&#xff0c;还需要深入理解昇腾AI框架、算子开发、模型优化等相关技术原理和应用方法…

《操作系统导论》第14章读书笔记:插叙:内存操作API

《操作系统导论》第14章读书笔记&#xff1a;插叙&#xff1a;内存操作API —— 杭州 2024-03-30 夜 文章目录 《操作系统导论》第14章读书笔记&#xff1a;插叙&#xff1a;内存操作API1.内存类型1.1.栈内存&#xff1a;它的申请和释放操作是编译器来隐式管理的&#xff0c;所…

Xcode删除原本的Git,再添加新的git

本文参考&#xff1a;Xcode怎么删除原本git,在重新设置新的git地址_ios xcode 删除原本git-CSDN博客 开发中会有一个问题。Xcode项目A 提交到Git服务器server1&#xff0c;此时项目A内部已经存在一个Git文件&#xff0c;与server1相关联。 此时你想将项目A提交到 另一个Git…

前端实现菜单搜索搜索(功能模版)

目录 前言正文 前言 总体界面如下所示&#xff1a; 正文 <template><div class"avue-searchs"click.self"handleEsc"><div class"avue-searchs__title">菜单搜索</div><div class"avue-searchs__content"…

PS从入门到精通视频各类教程整理全集,包含素材、作业等(4)复发

PS从入门到精通视频各类教程整理全集&#xff0c;包含素材、作业等 最新PS以及插件合集&#xff0c;可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制&#xff0c;今天先分享到这里&#xff0c;后续持续更新 PS人物数码照片处理技法视频教程 https://www.al…

Mybatis项目运行成功但是返回的数据是引用的地址

如图所示&#xff1a; 解决方法&#xff1a;是因为在实体类当中没有重写toString方法 成功输出&#xff1a;

企微获客助手到底有哪些价值?

获客助手作为企业微信官方提供的获客工具&#xff0c;在私域布局中确实展现了其强大的引流效率和便利性。这一工具通过简化传统引流过程中的复杂步骤&#xff0c;使得企业能够更高效地吸引和转化潜在客户。此外&#xff0c;获客助手还能实现不同渠道的无缝链接&#xff0c;进一…

脑机辅助推导算法

目录 一&#xff0c;背景 二&#xff0c;华容道中道 1&#xff0c;问题 2&#xff0c;告诉脑机如何编码一个正方形格子 3&#xff0c;让脑机汇总信息 4&#xff0c;观察图&#xff0c;得到启发式算法 5&#xff0c;根据启发式算法求出具体解 6&#xff0c;可视化 一&am…

C++ 项目:使用 GSL 数学运算库 C++ 调用Python

文章目录 Part.I IntroductionChap.I CMakeListsChap.II ExportLibGSL.hChap.III test_python.cpp Part.II GSL 使用方法Part.III C 调用 Python 使用方法相关博客 Part.I Introduction 本项目是一个使用 GSL 的小项目&#xff0c;还有 C 调用 Python。项目虽简单&#xff0c;…

【研发日记】Matlab/Simulink开箱报告(十一)——Requirements Toolbox

目录 前言 Requirements Toolbox 编写需求 需求联接设计 需求跟踪开发进度 追溯性矩阵 分析和应用 总结 前言 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff08;六&#xff09;——S-Fuction模块&#xff08;TLC&#xff09;》 见《开箱报告&#x…

挑战从0开始开发仿小红书app第一天

00后挑战从0开始开发仿小红书|Day01 前言 记录开发的全阶段&#xff0c;比如需求分析&#xff0c;开发过程&#xff0c;测试阶段。不懂代码没关系&#xff0c;可以看看互联网岗位在干嘛 会使用一些辅助编码工具&#xff0c;就是类似于ChatGPT的大模型&#xff0c;比如通义灵码…

java文件File和IO流(一)-- File文件,IO流,缓冲流,字节流,字符流

File文件操作类 java.io.File类&#xff1a;文件和文件目录路径的抽象表示形式&#xff0c;与平台无关 File 能新建、删除、重命名文件和目录&#xff0c;但File 不能访问文件内容本身。如果需要访问文件内容本身&#xff0c;则需要使用输入/输出流。 想要在Java程序中表示一个…

C语言数组详解

一维数组 创建和初始化 数组就是一组相同元素的集合。 他的创建&#xff1a; char arr[10]; int arr1[5]; 数组创建中 [] 里不能是变量&#xff0c;但是在c99标准之后就可以了被称为变长数组&#xff0c;但是不常用&#xff0c;而且变长数组不能初始化。 初始化&#xff…

[蓝桥杯 2016 国 C] 赢球票

[蓝桥杯 2016 国 C] 赢球票 题目描述 某机构举办球票大奖赛。获奖选手有机会赢得若干张球票。 主持人拿出 N N N 张卡片&#xff08;上面写着 1 ∼ N 1 \sim N 1∼N 的数字&#xff09;&#xff0c;打乱顺序&#xff0c;排成一个圆圈。 你可以从任意一张卡片开始顺时针数…

STM32的IAP技术,BootLoader

来源 三种下载方式&#xff1a; 1、ICP&#xff1a;ST-Link, 2、ISP: FlyMcu, 3、IAP IAP简介 IAP技术的核心在于BootLoader程序的设计&#xff0c;这段程序预先烧录在单片机中&#xff0c;正常的APP程序可以使用BootLoader程序中的IAP功能写入&#xff0c;也可以两部分代码一…

【React】vite + react 项目,进行配置 eslint

安装与配置 eslint 1 安装 eslint babel/eslint-parser2 初始化配置 eslint3 安装 vite-plugin-eslint4 配置 vite.config.js 文件5 修改 eslint 默认配置 1 安装 eslint babel/eslint-parser npm i -D eslint babel/eslint-parser2 初始化配置 eslint npx eslint --init相关…