<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[学习笔记本]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/webad2015</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; webad2015]]></copyright><item><title><![CDATA[函数指针的使用]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94973485</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94973485</guid><author>webad2015</author><pubDate>Sun, 07 Jul 2019 11:41:14 +0800</pubDate><description><![CDATA[函数指针
函数也是有地址的
所谓函数指针，就是指向函数的指针，函数指针也是一个变量，可以指向不同的函数。同时通过函数指针可以调用其指向函数，从而使函数的调用更加灵活。
函数指针的用途
*/
 #include&lt;iostream&gt;
 using namespace std;
 int add(int x, int y);
 int add(int x, int y)
 {
 
     ...]]></description><category></category></item><item><title><![CDATA[函数指针与指针函数]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94972897</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94972897</guid><author>webad2015</author><pubDate>Sun, 07 Jul 2019 11:30:42 +0800</pubDate><description><![CDATA[（1）函数指针
一种特殊的指针，它指向函数的入口；
/*
* 定义一个函数指针p，只能指向返回值为int，形参为两个int的函数
*/
int (*p)(int,int);
/* 
 * 求最大值 
 * 返回值是int类型，返回两个整数中较大的一个 
 */  
int max(int a, int b) {  
    return a &gt; b ? a : b;  
}  

/* 
 ...]]></description><category></category></item><item><title><![CDATA[C++中指针和引用的区别]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94970207</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94970207</guid><author>webad2015</author><pubDate>Sun, 07 Jul 2019 11:06:18 +0800</pubDate><description><![CDATA[指针和引用在C++中很常用，但是对于它们之间的区别很多初学者都不是太熟悉，下面来谈谈他们2者之间的区别和用法。
1.指针和引用的定义和性质区别：
(1)指针：指针是一个变量，只不过这个变量存储的是一个地址，指向内存的一个存储单元；而引用跟原来的变量实质上是同一个东西，只不过是原变量的一个别名而已。如：
int a=1;int *p=&amp;a;
int a=1;int &amp;b=a;
上面定...]]></description><category></category></item><item><title><![CDATA[反射学习]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94735382</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94735382</guid><author>webad2015</author><pubDate>Fri, 05 Jul 2019 15:05:40 +0800</pubDate><description><![CDATA[实现步骤：
导入using System.Reflection;
Assembly.Load(“程序集”)加载程序集,返回类型是一个Assembly
foreach (Type type in assembly.GetTypes())
{
string t = type.Name;
}
得到程序集中所有类的名称
Type type = assembly.GetType(“程序集.类名”);获取当前...]]></description><category></category></item><item><title><![CDATA[异步 Task类，async/await]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94627063</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94627063</guid><author>webad2015</author><pubDate>Thu, 04 Jul 2019 16:49:56 +0800</pubDate><description><![CDATA[原理
其实不管是Task，ThreadPool，本质最终都是Thread。只不过微软帮我们在简化线程控制的复杂度。
线程池是CLR中事先定义好的一些线程。Task取的线程池，只不过在语法上，可以非常方便取返回值。
异步会提高程序的运行速度吗
多线程会提高程序的效率，不会提高运行速度。
这就好比这一个任务让前台花1个小时。前台完成10分钟的时候
打电话给经理，让他安排一个人来干30分钟（new Th...]]></description><category></category></item><item><title><![CDATA[引用类型和值类型在数组、LIST中的分析]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94567552</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94567552</guid><author>webad2015</author><pubDate>Wed, 03 Jul 2019 15:43:41 +0800</pubDate><description><![CDATA[using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace learn
{
    class Program
    {
         
  ...]]></description><category></category></item><item><title><![CDATA[泛型与非泛型集合类的区别及使用例程]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94493814</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94493814</guid><author>webad2015</author><pubDate>Tue, 02 Jul 2019 23:06:54 +0800</pubDate><description><![CDATA[非泛型集合类
			
			
			泛型集合类
			
			
			描述
			
		
			ArrayList
			
			
			List&lt;T&gt;
			
			
			表示具有动态大小的对象数组
			
		
			Hashtable
			
			
			Dictionary&lt;Tkey,Tvalue&gt;
			
			
			由键值对组成的集合
			
		...]]></description><category></category></item><item><title><![CDATA[委托应用总结]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94467962</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94467962</guid><author>webad2015</author><pubDate>Tue, 02 Jul 2019 18:45:04 +0800</pubDate><description><![CDATA[一、什么是委托
1.1官方解释
委托是一种定义方法签名的类型。当实例化委托时，您可以将其实例与任何具有兼容签名的方法相关联。您可以通过委托实例调用方法。
1.2个人理解
委托就是执行方法（函数）的一个类。
事件是一种特殊的委托。
二、如何申明委托
2.1 delegate
public delegate int TestDelegate(int x, int y);
2.2 Action
Acti...]]></description><category></category></item><item><title><![CDATA[运算符重载]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94433352</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94433352</guid><author>webad2015</author><pubDate>Tue, 02 Jul 2019 10:37:07 +0800</pubDate><description><![CDATA[一、简介

　　平时我们使用的运算符都是C#内置定义好的，比如+-*/等等，但是我们项目中遇到复杂一点的运算方式，只能我们自己重载相应的运算符。比如两个类相加+，我们可以重载类的+运算符，在函数里面，自定义我们的规则。

　　C# 通过使用operator关键字定义静态成员函数，来允许用户定义的类型重载运算符。

二、详细说明

　 不过并非所有运算符都可以进行重载，并且其他运算符具有...]]></description><category></category></item><item><title><![CDATA[枚举和迭代器]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94389806</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94389806</guid><author>webad2015</author><pubDate>Mon, 01 Jul 2019 14:15:37 +0800</pubDate><description><![CDATA[1 枚举器
为什么数组可以使用 foreach 输出各元素？
这是因为数组是 枚举类型（enumerable） ，它通过 GetEnumerator 方法提供一个 枚举器（enumerator），即能实现 GetEnumerator 方法的类型是 枚举类型
枚举器可以依次返回请求的数组的元素，枚举器知道 项的次序 并跟踪它的序列位置，然后返回 请求的当前项
对象枚举类型获取枚举器的方法是调用对象的...]]></description><category></category></item><item><title><![CDATA[泛型类、泛型集合、泛型方法、泛型约束、泛型委托入门学习]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94388403</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94388403</guid><author>webad2015</author><pubDate>Mon, 01 Jul 2019 13:41:06 +0800</pubDate><description><![CDATA[泛型优点
官方文档：https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/generics/introduction-to-generics
简介:
泛型是.NET Framework2.0新增的一个特性，在命名空间System.Collections.Generic,包含了几个新的基于泛型的集合类，官方建议.net 2....]]></description><category></category></item><item><title><![CDATA[泛型的多种应用]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94162923</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94162923</guid><author>webad2015</author><pubDate>Sat, 29 Jun 2019 15:23:46 +0800</pubDate><description><![CDATA[泛型是.NET Framework 2.0 版类库就已经提供的语法，主要用于提高代码的可重用性、类型安全性和效率。
关于泛型的理解可以总结下面的一句话，它是把数据类型作为一种参数传递进来。
下边的这段代码是泛型的一个最简单的应用
using System;
using System.Collections.Generic;
using System.Text;

namespace Console...]]></description><category></category></item><item><title><![CDATA[虚方法（Virtual）、抽象方法（Abstract），接口（Interface）、抽象类的区别]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94153638</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94153638</guid><author>webad2015</author><pubDate>Sat, 29 Jun 2019 14:03:17 +0800</pubDate><description><![CDATA[一、虚方法和抽象方法的区别：
1、抽象方法只能在抽象类里面声明，而且抽象方法不能有实现（不能有方法体）。
2、虚方法在声明时必须有实现。

public abstract class test     {        

　　　　　　/// 在抽象类中声明了抽象方法        

　　　　　　public abstract string AbstractMethod();

       　...]]></description><category></category></item><item><title><![CDATA[匿名类型]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94005945</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94005945</guid><author>webad2015</author><pubDate>Fri, 28 Jun 2019 15:16:41 +0800</pubDate><description><![CDATA[匿名类型
允许我们创建无名类类型的特性。匿名类型（anonymous type）经常用于LINQ查询的结果中。
第6章介绍了对象初始化语句，它允许我们在使用对象创建表达式时初始化新类实例的字段和属性。提醒一下，这种形式的对象创建表达式由三部分组成：new关键字、类名或构造函数以及对象初始化语句。对象初始化语句在一组大括号内包含了以逗号分隔的成员初始化列表。
创建匿名类型的变量使用相同的形式，但是没...]]></description><category></category></item><item><title><![CDATA[静态类和单例模式区别]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/94001624</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/94001624</guid><author>webad2015</author><pubDate>Fri, 28 Jun 2019 14:42:25 +0800</pubDate><description><![CDATA[观点一：（单例）
单例模式比静态方法有很多优势：
首先，单例可以继承类，实现接口，而静态类不能（可以集成类，但不能集成实例成员）；
其次，单例可以被延迟初始化，静态类一般在第一次加载是初始化；
再次，单例类可以被集成，他的方法可以被覆写；
最后，或许最重要的是，单例类可以被用于多态而无需强迫用户只假定唯一的实例。举个例子，你可能在开始时只写一个配置，但是以后你可能需要支持超过一个配置集，或者可能需...]]></description><category></category></item><item><title><![CDATA[长度可变参数--Params 使用须知]]></title><link>https://blog.youkuaiyun.com/webad2015/article/details/93999985</link><guid>https://blog.youkuaiyun.com/webad2015/article/details/93999985</guid><author>webad2015</author><pubDate>Fri, 28 Jun 2019 14:30:07 +0800</pubDate><description><![CDATA[Params用于参数的数量可变的情况下，即参数的个数是未知数。

使用Params需要知道以下几点：

1、如果函数传递的参数含有多个，使用Params标记的参数数组需要放在最后



图上显示的很明确，不需要多解释，只能使用A的那种排序方式

2、Params修饰的一定要是数组，而且必须是一维数组



3、Params不能和ref、out组合使用

具体参见Hunts.C前辈的文章http:/...]]></description><category></category></item></channel></rss>