<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[晓晓的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/qq_34423913</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_34423913]]></copyright><item><title><![CDATA[委托]]></title><link>https://blog.csdn.net/qq_34423913/article/details/113841907</link><guid>https://blog.csdn.net/qq_34423913/article/details/113841907</guid><author>qq_34423913</author><pubDate>Thu, 18 Feb 2021 10:38:22 +0800</pubDate><description><![CDATA[委托是C#中的一大特色。
委托从字面上理解就是一种代理，类似于房屋中介，由租房人委托中介为其租赁房屋。
在 C# 语言中，委托则委托某个方法来实现具体的功能。
委托是一种引用类型，虽然在定义委托时与方法有些相似，但不能将其称为方法。
委托在使用时遵循三步走的原则，即定义声明委托、实例化委托以及调用委托。
一、命名方法委托
声明：
修饰符 delegate 返回值类型 委托名（参数列表）;
如：public delegate void Mydele(int a); 

实例化：
和对象的实例化差不多
如：My]]></description><category></category></item><item><title><![CDATA[C#readonly关键字]]></title><link>https://blog.csdn.net/qq_34423913/article/details/113740707</link><guid>https://blog.csdn.net/qq_34423913/article/details/113740707</guid><author>qq_34423913</author><pubDate>Sun, 07 Feb 2021 15:07:25 +0800</pubDate><description><![CDATA[readonly是一种常量修饰符，区别于const，分别进行记录。
先说const，const是静态常量或者叫编译时常量，是指编译器在编译时候会对常量进行解析，并将常量的值替换成初始化的那个值。必须在声明的时候初使化， const 关键字声明的字段默认带有 static 属性，因此只可以通过类对 const 常量进行访问。
 class Person
  	{
       public const int age = 10;
    }
    class Program
    {
        st]]></description><category></category></item><item><title><![CDATA[DQL基础查询]]></title><link>https://blog.csdn.net/qq_34423913/article/details/113697950</link><guid>https://blog.csdn.net/qq_34423913/article/details/113697950</guid><author>qq_34423913</author><pubDate>Fri, 05 Feb 2021 16:43:07 +0800</pubDate><description><![CDATA[一：基础查询
1.语法：
select  查询列表  from  表名;
//select后面跟的查询列表，可以有多个部分组成，中间用逗号隔开
例如：select 字段1,字段2,表达式 from 表;

2.特点：
查询的结果集是一个虚拟表
3、执行顺序
① from子句
② select子句
4、查询列表
可以是：字段、表达式、常量、函数等
举例：
表：如下 
环境：mysql8.0,不同的数据库软件sql略有不同
SELECT 100 ;//查询常量

SELECT -10%3;//查询表达式，这个结]]></description><category></category></item><item><title><![CDATA[数据库相关概念]]></title><link>https://blog.csdn.net/qq_34423913/article/details/113694278</link><guid>https://blog.csdn.net/qq_34423913/article/details/113694278</guid><author>qq_34423913</author><pubDate>Fri, 05 Feb 2021 15:50:19 +0800</pubDate><description><![CDATA[数据库的优点：
1. 实现数据持久化
2.使用完整的管理系统统一管理，易于查询
数据库相关术语：

DB  （Database）就是存储数据的“仓库”，保存了一系列有组织的数据
DBMS (Database Management System) 数据库管理系统，通过这个东西，我们可以和数据库进行交互，平时所说的数据库，其实就是数据库管理系统，也叫数据库管理软件。
SQL：(Structure Query language) 结构化查询语言，是一门专门和数据库通讯的语言，适用于大多数数据库，但一般来说，不同的]]></description><category></category></item><item><title><![CDATA[数据库简介]]></title><link>https://blog.csdn.net/qq_34423913/article/details/112801907</link><guid>https://blog.csdn.net/qq_34423913/article/details/112801907</guid><author>qq_34423913</author><pubDate>Tue, 19 Jan 2021 11:04:27 +0800</pubDate><description><![CDATA[数据库就是存放数据的仓库，平时所说的“数据库”是指DBMS（数据库管理系统），他是对数据库进行管理的一种软件，和数据库不是一个东西。
数据库分为关系型数据库和非关系型数据库。
关系型数据库：
指采用了关系模型来组织数据的数据库。
关系模型就是二维表，就是和excel差不多的那种东西。二维表结构是非常贴近逻辑世界的一个概念，关系模型相对网状、层次等其他模型来说更容易理解
主流的包括MySQL、Sqlite、sql server等
非关系型数据库
通过键值对来存放数据的一种数据库，如Redis等

...]]></description><category></category></item><item><title><![CDATA[套接字socket]]></title><link>https://blog.csdn.net/qq_34423913/article/details/112599080</link><guid>https://blog.csdn.net/qq_34423913/article/details/112599080</guid><author>qq_34423913</author><pubDate>Thu, 14 Jan 2021 13:47:04 +0800</pubDate><description><![CDATA[socket的作用是用来在客户端和服务端传输数据用的

]]></description><category></category></item><item><title><![CDATA[c#进程和线程]]></title><link>https://blog.csdn.net/qq_34423913/article/details/112472719</link><guid>https://blog.csdn.net/qq_34423913/article/details/112472719</guid><author>qq_34423913</author><pubDate>Wed, 13 Jan 2021 08:12:08 +0800</pubDate><description><![CDATA[进程：进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。比如

Process类是操作进程的类，可以直接启动某个程序

方法1：直接调用Process类的静态方法start;

public static System.Diagnostics.Process Start (string fileName);


先用 StartInfo 指定需要启动的程序信息，然后直接调用Start ()，startinfo属性是一个ProcessStartInfo类型的值。

线程：

...]]></description><category></category></item><item><title><![CDATA[C#学习笔记二]]></title><link>https://blog.csdn.net/qq_34423913/article/details/112296592</link><guid>https://blog.csdn.net/qq_34423913/article/details/112296592</guid><author>qq_34423913</author><pubDate>Mon, 11 Jan 2021 15:55:17 +0800</pubDate><description><![CDATA[1.多态的三种实现方法
多态：个人理解就是同一个对象可以表现出不同的形式

虚方法（virtual关键字：这个函数可以被子类重新写一遍，子类如果要重写需要加override关键字）
抽象类：（abstract）如果我们要重写的方法在父类中不知道怎么去写，就可以用抽象类，abstract要放在前面，其需要重写的方法不需要方法体{};

抽象类特点
1.抽象成员必须标记为abstract,并且不能有任何实现。
2.抽象成员必须在抽象类中。
3.抽象类不能被实例化
4.子类继承抽象类后，必须把父类中的所有抽象成员]]></description><category></category></item><item><title><![CDATA[C#学习笔记一]]></title><link>https://blog.csdn.net/qq_34423913/article/details/111500805</link><guid>https://blog.csdn.net/qq_34423913/article/details/111500805</guid><author>qq_34423913</author><pubDate>Tue, 05 Jan 2021 22:50:51 +0800</pubDate><description><![CDATA[一、注释

注销
解释

一般来说有三种：

//     单行解释、注销
/**/   可嵌入解释、注销
///		命名空间、类等的解释

二、

]]></description><category></category></item><item><title><![CDATA[C#错误码]]></title><link>https://blog.csdn.net/qq_34423913/article/details/111940984</link><guid>https://blog.csdn.net/qq_34423913/article/details/111940984</guid><author>qq_34423913</author><pubDate>Wed, 30 Dec 2020 08:27:05 +0800</pubDate><description><![CDATA[错误CS0001 编译器内部错误
错误CS0003 内存溢出
错误CS0004 提升为错误的警告
错误CS0005 编译器选项后应跟正确的参数
错误CS0006 找不到动态链接的元数据文件
错误CS0007 .Net 环境初始化错误
错误CS0008 从文件中读取元数据错误
错误CS0009 不能打开元数据文件
错误CS0010 名字空间与类型的声明不能同名
错误CS0011 引用的类找不到基类
错误CS0012 找不到引用类型的定义
错误CS0013 向文件中保存元数据时发生未知错误
错误CS0014 找]]></description><category></category></item><item><title><![CDATA[.net]]></title><link>https://blog.csdn.net/qq_34423913/article/details/111346460</link><guid>https://blog.csdn.net/qq_34423913/article/details/111346460</guid><author>qq_34423913</author><pubDate>Mon, 21 Dec 2020 21:46:50 +0800</pubDate><description><![CDATA[一、.net
平时所说的.net是指.net平台和.net Framework框架。
.net平台就是一个比较抽象的概念，就和平时我们所理解的平台类似，比如：xxx商业平台等等，他提供一个大的环境
.net Framework框架就是就是支持.net平台的运行的一个架构，也就是说.net Framework包含于.net，.net FrameWork框架提供了一个稳定的运行环境，来保障.net平台正常的运转
二、c#
c#是一种高级编程语言，是微软专为.net平台量身打造的一款编程语言，和.net本身是两个]]></description><category></category></item><item><title><![CDATA[c语言只看这一篇就够了]]></title><link>https://blog.csdn.net/qq_34423913/article/details/110347277</link><guid>https://blog.csdn.net/qq_34423913/article/details/110347277</guid><author>qq_34423913</author><pubDate>Wed, 16 Dec 2020 11:04:34 +0800</pubDate><description><![CDATA[一、c语言的版本更迭
	点击跳转

二、c语言的编译原理
关于编译器有很多种，比如VS用的cl，dev C++用的gcc等。
c语言从源码到exe可执行文件经历的过程（也就是编译原理）
点击此处获取更多信息
三、数据的类型
总的来说数据类型可以分为以下几种：整型和浮点型，具体分如下




类型
在内存中所占字节大小




char
1


short （int）
2


int
4


long （int)
4


long long (int)
8


float
4


double
8


lon]]></description><category></category></item><item><title><![CDATA[c指针]]></title><link>https://blog.csdn.net/qq_34423913/article/details/111193140</link><guid>https://blog.csdn.net/qq_34423913/article/details/111193140</guid><author>qq_34423913</author><pubDate>Tue, 15 Dec 2020 21:51:02 +0800</pubDate><description><![CDATA[指针是用来保存内存地址的变量。
定义
type * pvalue;

一、“&amp;”是用来取地址的。
因为pvalue是个指针，他存的是地址，可以把地址赋值给指针，比如，scanf()中的“&amp;”符号，就是用来取地址的，如：
int a=8;
int * pvalue=&amp;a;

习惯上说，pvalue指向了a。
二、“*”是用来解引用的。
也就是获得指针所指向的地址处的数据
对上面的例子
printf("%p",&amp;a);//打印a的地址
printf("%p",pvalue);//]]></description><category></category></item><item><title><![CDATA[身份证最后一位的校验]]></title><link>https://blog.csdn.net/qq_34423913/article/details/110886757</link><guid>https://blog.csdn.net/qq_34423913/article/details/110886757</guid><author>qq_34423913</author><pubDate>Tue, 08 Dec 2020 21:48:54 +0800</pubDate><description><![CDATA[身份证的最后一位数字（或者字母）是依赖于之前所有数字的。
根据前面17位数字，计算得到最后一个字符的过程，称为身份证校验算法。
这个算法的计算过程如下：

将身份证号码的前17位数字，与校验权重表中对应的权重，分别相乘，并求和。
将以上的求和结果，对11取余，得到一个校验表下标
根据上一步得到的校验表下标，得到身份证最后一位的符号

以上的算法过程中，有两个表，非常适合使用数组存储。

//权重表
int weightTable[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7]]></description><category></category></item><item><title><![CDATA[数据在内存中的存储方式]]></title><link>https://blog.csdn.net/qq_34423913/article/details/110351517</link><guid>https://blog.csdn.net/qq_34423913/article/details/110351517</guid><author>qq_34423913</author><pubDate>Sun, 29 Nov 2020 20:31:18 +0800</pubDate><description><![CDATA[在vs的调试过程中，我们可以调出内存查看窗口和监视窗口。
我们先来看个东西，我们在vs中定义一个int类型的变量a


可以发现a的内存地址是0x0019feec

44存在了0019FEEC上
33存在了0019FEED上
22存在了0019FEEE上
11存在了0019FEEF上
和我们想的好像不太一样。这涉及到大小端的知识。
按我们平时的数学思路来说11223344的11属于最高位，44属于最低位;而在内存中0019FEEC是最低位，0019FEEF是最高位。
大端：将数字的较低位，存储在内存的较高地]]></description><category></category></item><item><title><![CDATA[c语言的编译原理]]></title><link>https://blog.csdn.net/qq_34423913/article/details/109731987</link><guid>https://blog.csdn.net/qq_34423913/article/details/109731987</guid><author>qq_34423913</author><pubDate>Mon, 16 Nov 2020 23:23:54 +0800</pubDate><description><![CDATA[我们平时写的c代码，就是以.c为后缀的文件，就叫源文件，要经过编译链接之后才能成为可执行的exe文件。我们来看看是怎么进行的呢。

笔者用的两款IDE，一个叫Dev C++,一个是vs2015，我们来看看他们是怎么实现编译链接的。
Dev C++：
这个IDE用的编译器是GCC，ok，我们来看一下他的安装路径，
可以看到在这个目录里有gcc的exe程序，Dev C++就是通过这个东西来编译的。我们可以配置一下环境变量，直接通过gcc命令来编译我们的源文件。
之所以要配置环境变量，是因为我们当我们配置了环境变]]></description><category></category></item><item><title><![CDATA[c语言的版本变更]]></title><link>https://blog.csdn.net/qq_34423913/article/details/109676412</link><guid>https://blog.csdn.net/qq_34423913/article/details/109676412</guid><author>qq_34423913</author><pubDate>Fri, 13 Nov 2020 15:46:17 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[git学习之分支]]></title><link>https://blog.csdn.net/qq_34423913/article/details/109631947</link><guid>https://blog.csdn.net/qq_34423913/article/details/109631947</guid><author>qq_34423913</author><pubDate>Wed, 11 Nov 2020 21:39:58 +0800</pubDate><description><![CDATA[分支就是科幻电影里面的平行宇宙，如果两个平行宇宙互不干扰，那对现在的你也没啥影响。不过，在某个时间点，两个平行宇宙合并了，我们就需要处理一些问题了！
git分支中常用指令：
# 列出所有本地分支
git branch

# 列出所有远程分支
git branch -r

# 新建一个分支，但依然停留在当前分支
git branch [branch-name]

# 切换到该分支
git checkout  [branch]

# 合并指定分支到当前分支
$ git merge [branch]

# 删除分]]></description><category></category></item><item><title><![CDATA[在idea中集成git]]></title><link>https://blog.csdn.net/qq_34423913/article/details/109617376</link><guid>https://blog.csdn.net/qq_34423913/article/details/109617376</guid><author>qq_34423913</author><pubDate>Wed, 11 Nov 2020 13:56:07 +0800</pubDate><description><![CDATA[方式一：直接把idea项目建在.git目录下
方式二：把.git以及其他仓库文件全部复制到项目根目录中（推荐）
刷新一下，不行就重启一下，在右上角会出现
其中add操作是idea自动做的 ，我们不用管，中间那个是commit，后面那个是push,是不是很方便啊。

也可以用terminal编辑框来操作，和gitBash没什么区别，可能就是命令不太一样，一个是linux，一个是windows

git 视图可以看log等信息

...]]></description><category></category></item><item><title><![CDATA[git学习之git的常规使用]]></title><link>https://blog.csdn.net/qq_34423913/article/details/109616687</link><guid>https://blog.csdn.net/qq_34423913/article/details/109616687</guid><author>qq_34423913</author><pubDate>Wed, 11 Nov 2020 13:18:50 +0800</pubDate><description><![CDATA[一般来说，有两种使用方式
方式一：
直接用git clone url 命令把我们的远程仓库clone到本地。
然后就可以用
git add .
git commit -m ""
git push

等操作把你的项目上传到远程上了
方式二：
1.在工作区用git init初始化一个git 库

2.用git remote add xxx url 添加远程仓库，这个xxx可以随便起，后面pull/push会用到
3.可以用git remote 或git remote -v来检查是否添加

4.需要先从远程中拉取]]></description><category></category></item></channel></rss>