<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaolu_god2015</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaolu_god2015]]></copyright><item><title><![CDATA[多线程与Invoke,Beginvoke]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/50947742</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/50947742</guid><author>xiaolu_god2015</author><pubDate>Mon, 21 Mar 2016 16:39:58 +0800</pubDate><description><![CDATA[转载自多线程与Invoke,Beginvoke首先，什么样的操作需要考虑使用多线程？      总的一条就是，负责与用户交互的线程(以下简称为UI线程)应该保持顺畅，当UI线程调用的API可能引起阻塞时间超过30毫秒时(比如访问CD-ROM等速度超慢的外设、进行远程调用等等)就应该考虑使用多线程。      为什么是30毫秒？30毫秒的概念是人眼可以察觉到的一个迟滞，大约等同于电影里的一帧停留的时间]]></description><category></category></item><item><title><![CDATA[Andorid的SDK Manager下载慢问题]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/50252115</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/50252115</guid><author>xiaolu_god2015</author><pubDate>Thu, 10 Dec 2015 17:18:05 +0800</pubDate><description><![CDATA[下载好android 的SDK后，启动起来，下载各个版本的API和相关工具，但是那速度……以个位数的bit计。难以忍受！在网上看到一网友提供的方式，在此记录下来。打开SDK Manager。在其中输入：mirrors.neusoft.edu.cn80并勾选 Others的第一项。点击Close。现在那速度： 
在我电脑上3m多]]></description><category></category></item><item><title><![CDATA[16 数组]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49996995</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49996995</guid><author>xiaolu_god2015</author><pubDate>Mon, 23 Nov 2015 16:25:54 +0800</pubDate><description><![CDATA[数组是允许将多个数据项当做一个集合来出力的机制。所有数组类型都是从System.Array继承，而System.Array从Object继承而来数组相对简单，提供一些稍微注意的代码实例。string[] name = new string[]{"xiaolu","xiaowang"};
//数组初始化器
//也可以var names= new []{"xiaolu","xiaozhang"};//还]]></description><category></category></item><item><title><![CDATA[15枚举]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49982371</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49982371</guid><author>xiaolu_god2015</author><pubDate>Sun, 22 Nov 2015 22:29:06 +0800</pubDate><description><![CDATA[枚举类型，相对其他类型来说，使用上要简单一些。枚举类型： 定义了一组“符号名称/值”配对。internal enum Color{
    White,//0
    Red,//1
    Green,//2
    Bule,//3
    Orange//4
}使用枚举类型而不是数字，可以使得代码更容易阅读，理解和维护。使用者定义的枚举类型都是从System.Enum继承，System.Enu]]></description><category></category></item><item><title><![CDATA[14字符串和文本处理]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49976307</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49976307</guid><author>xiaolu_god2015</author><pubDate>Sun, 22 Nov 2015 11:25:50 +0800</pubDate><description><![CDATA[c#中，对于字符串的处理，使用起来比较方便【String类型被定义为基元类型】，当程序中出现literal（字符串常量时）会直接应用到string上【个人一般习惯写小写keywords(语法着色），这里string和String类是对应的，类似object和Object类】string是不可变的【immutable】,string类型中的大多数方法返回的都是一个新构造的字符串，使用者不用担心破坏原来]]></description><category></category></item><item><title><![CDATA[13接口【显式接口实现】]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49948405</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49948405</guid><author>xiaolu_god2015</author><pubDate>Fri, 20 Nov 2015 16:24:55 +0800</pubDate><description><![CDATA[c#中的接口，有隐式接口【就是一般意义上直接实现某个接口中的方法，从表现上看，没有接口名称限定】，和显式接口【有接口名称限定】internal interface IDemo{
    void func();
}internal sealed class Demo : IDemo{
    //隐式实现接口
    public void func(){
        ...
    }]]></description><category></category></item><item><title><![CDATA[12泛型]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49932907</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49932907</guid><author>xiaolu_god2015</author><pubDate>Thu, 19 Nov 2015 19:56:02 +0800</pubDate><description><![CDATA[泛型这个概念并不算新鲜的事物【java，c++】等语言中也都各自有。然而，c#中的泛型使用起来还是更为方便简洁一些【尤其是可以向泛型施加的多种约束】]]></description><category></category></item><item><title><![CDATA[java自定义事件【详细】]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49925369</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49925369</guid><author>xiaolu_god2015</author><pubDate>Thu, 19 Nov 2015 11:36:58 +0800</pubDate><description><![CDATA[package com.xiaolu.eventdemo;import java.util.EventListener;
import java.util.EventObject;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;/**
 * @class EventDemo
 * @author x]]></description><category></category></item><item><title><![CDATA[11事件]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49911157</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49911157</guid><author>xiaolu_god2015</author><pubDate>Wed, 18 Nov 2015 18:43:37 +0800</pubDate><description><![CDATA[using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Threading; 
namespace EventDemo 
{ 
    /** 
     * 模拟实现C#中的事件机制]]></description><category></category></item><item><title><![CDATA[10 属性（property)]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49906985</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49906985</guid><author>xiaolu_god2015</author><pubDate>Wed, 18 Nov 2015 14:45:35 +0800</pubDate><description><![CDATA[想对于【java/c++】这些语言来说，c#的property是比较独特的。给 使用者一种介于方法和字段之之间的感觉【对于编译器而言，其实还是一个字段+get/set两个方法】属性【property】，使用起来还是比较简单的：public sealed class PropertyDemo{
    public string Name{get;set;}
    ...
}个人比较喜欢这种方式，另]]></description><category></category></item><item><title><![CDATA[9参数]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49895467</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49895467</guid><author>xiaolu_god2015</author><pubDate>Tue, 17 Nov 2015 23:39:12 +0800</pubDate><description><![CDATA[c#中，关于参数有 ref，out,params等修饰关键字，同时，也允许参数具有默认值，通过参数名称进行调用。如果一个方法有多个参数，并且有的参数具有默认值，那么具有默认值的参数应当在最后【也即，具有默认的参数右边不能有没有默认值的参数存在——–可变参数数组是个例外】。 
类似：public void func(int i,j = 5,k = 10);对于func的调用：func(0);//只是对]]></description><category></category></item><item><title><![CDATA[const和值对象以及编译时常量]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49894101</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49894101</guid><author>xiaolu_god2015</author><pubDate>Tue, 17 Nov 2015 22:07:08 +0800</pubDate><description><![CDATA[首先看一个例子：        private static int s_n = 0;        private static void M(int x = 9,string s = "A",DateTime     dt = default(DateTime),
            Guid guid = new Guid())
        {
            System.C]]></description><category></category></item><item><title><![CDATA[8扩展方法和分部方法]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49891747</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49891747</guid><author>xiaolu_god2015</author><pubDate>Tue, 17 Nov 2015 19:07:59 +0800</pubDate><description><![CDATA[c#中有扩展方法和分部方法。扩展方法可以对一个已经存在的类型（class)中的功能进行添加，而不用对已有类进行修改或者派生【派生的方式对于值类型或者sealed修饰的类型来说行不通】在语法上： 扩展方法 要求所在的类型必须是一个静态类，并且扩展方法也是静态的【static修饰】，扩展方法只能用来对方法进行扩展，而不能扩展属性【property】，事件，委托等。扩展方法的第一个参数是要进行扩展的类型，]]></description><category></category></item><item><title><![CDATA[8方法]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49889333</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49889333</guid><author>xiaolu_god2015</author><pubDate>Tue, 17 Nov 2015 16:30:37 +0800</pubDate><description><![CDATA[c#中的操作符重载和转换操作符，在c++中也有，因此并没有太多值得注意的地方。语法差异略大的地方是，c#要求操作符重载和转换操作符都必须是 public 和 static 修饰的。对于转换操作符来说,operator 后面紧跟要转换的目标类型即可。【前面有implicit/explicit修饰】 
例如： public sealed class Demo{
     public static im]]></description><category></category></item><item><title><![CDATA[7常量]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49886297</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49886297</guid><author>xiaolu_god2015</author><pubDate>Tue, 17 Nov 2015 13:24:39 +0800</pubDate><description><![CDATA[c#中，const是默认具有static属性的，【这与c++语言有些不同】。因此不允许在const前有static修饰。说到const，就很难不提到另外一个东西 readonly，readonly只读量。从语义上来说，就是是只读的。c#中可以进行内联赋值或者在构造器中进行赋值，而不允许其他方法对只读量进行改写【可以通过反射进行修改】那么，const和readonly区别在哪里： 
const是常量。]]></description><category></category></item><item><title><![CDATA[类型和成员基础]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49884843</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49884843</guid><author>xiaolu_god2015</author><pubDate>Tue, 17 Nov 2015 11:03:37 +0800</pubDate><description><![CDATA[c#中，通过static来修饰类型名称，可以使得类型无法被实例化。这里的类型指的是引用类型（class),static修饰只能用于类（class)，而不能用于值类型（struct),因为CLR总是允许值类型实例化，这是没有办法阻止的。（java中不用使用static来修饰类型，可以将构造函数私有化来达到无法实例化的效果或者用abstract修饰）由于使用了static关键字来修饰类型，使得类型无法被]]></description><category></category></item><item><title><![CDATA[java和C#访问数据库字段空值]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49871161</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/49871161</guid><author>xiaolu_god2015</author><pubDate>Mon, 16 Nov 2015 20:14:58 +0800</pubDate><description><![CDATA[最近学习c#过程中，c#存在一种Nullable类型，也就是常说的“可空类型”，一般多在数据库访问时使用到。Nullable类型使用于值类型，因为引用类型本身就是“可空的”（可以直接赋值为null). 
假设数据库中存有一张student表，其中有年龄（整数型）字段。而这个字段是允许为空的【也就是没置入数据】。 
当一般查询时，遇到这种空值类型，常常会跑出异常，程序终止，用其他方式解决又相对麻烦，此]]></description><category></category></item><item><title><![CDATA[访问者模式]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/48784535</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/48784535</guid><author>xiaolu_god2015</author><pubDate>Mon, 28 Sep 2015 14:47:25 +0800</pubDate><description><![CDATA[在诸多设计模式中，个人一直很难理解解释器模式和访问者模式【可能用相对少吧】。这两天决定去再次认真看看访问者模式，在网上搜了搜，发现给出的答案往往太过于“为了演示模式而举例“，看了之后还是一头雾水【知道了如何用，却很难理解为什么要用- -】，最终在网上找到一篇个人觉得举例还算贴近生活【具体作者忘了，在此说声谢谢】，看完后，加上自己的一番思考，方有了本篇博文。还是以网上那篇博文进行举例【但是又做了些许修]]></description><category></category></item><item><title><![CDATA[代理模式和装饰模式]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/48750313</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/48750313</guid><author>xiaolu_god2015</author><pubDate>Sat, 26 Sep 2015 11:17:36 +0800</pubDate><description><![CDATA[**                    代理模式和装饰模式**话说代理模式和装饰模式的uml图很类似，之前会用，但是对于语意却不甚理解。今天在翻到一篇博文时，忽然间感觉开朗了。简单理解： 
代理模式 ：主要用来控制对对象的访问。 
装饰模式： 主要用来对对象动态的添加额外的一些“能力”，是继承的另一种替代。【但比继承好，优先使用组合而不是继承，使用装饰者模式，很大情况下因为继承容易产生子类爆炸】]]></description><category></category></item><item><title><![CDATA[数据结构学习(3)]]></title><link>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/48628769</link><guid>https://blog.youkuaiyun.com/xiaolu_god2015/article/details/48628769</guid><author>xiaolu_god2015</author><pubDate>Mon, 21 Sep 2015 16:47:52 +0800</pubDate><description><![CDATA[chapter3 线性表

线性表： 0个或者多个数据元素的有限序列。 
【序列 说明元素之间具有顺序性】]]></description><category></category></item></channel></rss>