随笔分类 - [00-4]学习笔记
摘要:本次重构应该先后有 8项小工作 需要做: 一、分解函数,将超长函数分解为若干个小函数,然后在原函数中调用。(只分解一份,另一份先不要动) 二、新建一个类, 把分解后的小函数 及被分解的原函数 复制到该类中, 并将被分解的原函数的访问修饰符 修改为public。 三、处理新类,将新类中 访问不到的东西
阅读全文
摘要:假如有方法A、B、C具有相同的过程a、b、e、g,但过程c、d、f、h却不相同。 重构可选步骤: 1、建立一个新的类:Base,并建立一个新的方法Method。 2、将A方法中的代码复制到Method中,并分解其中的代码为a、b、c、d、e、f、g、h几个小方法(如果有临时变量分解起来会有点麻烦),
阅读全文
摘要:刚刚用BackgroundTransferRequest 做了一个后台下载文件的demo[WP7],代码写完了运行时报了一个ArgumentException(MSDN给出的说明The path must end with a file name.),但是我写的代码没有问题的啊、确实一个合法的文件名。一丝不解中,再抬头一个Remarks:To help isolate the files to which the background transfer service has access, all transfers must be downloaded to a file within t
阅读全文
摘要:完整全文参见:http://tech.it168.com/a2011/0511/1188/000001188936_all.shtml【IT168 专稿】无论是从用户的角度来看还是从开发人员的角度来看,Windows Phone 7给我们带来众多的新的和令人振奋的功能。与此同时,当前的Windows Phone 7系列也的确存在令许多用户失望的缺憾。一个代表性的遗憾便是,Windows Phone 7缺乏本地数据库API支持—当前的Windows Phone 7操作系统仅提供通过XML、客户端独立存储和云存储等几种有限的数据访问支持。那么,就本地数据库功能来说,我们真的有没有其他的选择了吗?当
阅读全文
摘要:C# sqite for wp7源:http://code.google.com/p/csharp-sqlite/downloads/list 部分代码示例:IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();isf.DeleteFile("test.db");using (SqliteConnection conn = new SqliteConnection("Version=3,uri=file:test.db")){conn.Open();using
阅读全文
摘要:A 什么是全角和半角? (1)全角--指一个字符占用两个标准字符位置。 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。一般的系统命令是不用全角字符的,只是在作文字处理时才会使用全角字符。(2)半角--指一字符占用一个标准的字符位置。 通常的英文字母、数字键、符号键都是半角的,半角的显示内码都是一个字节。在系统内部,以上三种字符是作为基本代码处理的,所以用户输入命令和参数时一般都使用半角。B 全角与半角各在什么情况下使用? 全角占两个字节,半角占一个字节。 半角全角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节,而不管是半角还是全角,汉字
阅读全文
摘要:还记得上一次的猜测了windows右键菜单 “发送到 Evernote”的功能实现方案,呵呵,今天又猜了一次,不过换成了IE右键菜单。我想任何一个不明白其中原理和实现方案的人、在刚遇到这个问题时肯定是“丈二的和尚”——摸不着头脑。我也是这样、一头雾水,不过还大概的有点头绪,就是弄清楚“Add To Evernote”用到了哪些东西、那些文件,然后再和其他应用程序的相似功能进行对比,这样就能把“狐狸尾巴”揪出来了。开始揪尾巴…打开360安全卫士,找功能大全,里面有一项叫“右键菜单管理”的功能。嘿嘿,这招有点狠,尾巴立马被抓到了,如下图:右键菜单.png (39.21 KiB) 被浏览 1 次我的
阅读全文
摘要:今天遇到的一个输入法全/半角的问题,大致情形如下:用户注册界面中对用户名及邮箱进行验证、验证条件中有一项为“半角字符”,即全角字符不合法。并且验证错误时的提示信息也做的比较粗糙,提示的是什么“用户名允许…字符,长度是多少 ”等等,而恰好没有提示到“半角字符”。这时候某用户开始了一遍又一遍输入他那全角的英文字符,然而总是注册失败,弄的很郁闷。唉,用户交互没做好啊!再言之:WinForm里用错误提示大多还是用那种“小红圈”[ErrorProvider],错误提示文本被隐藏了,不能被用户直接看到。还有当时他似乎也没有看错误提示信息哦。仔细想想 这是用户的错吗? 似乎也不能责怪用户吧!既然遇到问题了,
阅读全文
摘要:在某些情况下(例如通过网络访问数据),常常不希望程序卡住而占用太多时间以至于造成界面假死。在这时、我们可以通过Thread、Thread + Invoke(UI)或者是 delegate.BeginInvoke 来避免界面假死,但是这样做时,某些代码或者是某个方法的执行超时的时间还是无法操控的。那么我们又是否有一种比较通用的方法、来设定某一个方法的执行超时的时间,让其一旦超过指定时间则跳出指定方法、进而继续向下执行呢?答案当然是肯定的。delegate.BeginInvoke可以实现代码代码的异步执行,在这种情况下,只要让程序可以等待一个Timespan,如果在Timespan到达之前方法内的
阅读全文
摘要:InetLoad::loadInetLoad::load [/PROXY IP:PORT] [/USERNAME PROXY_LOGIN /PASSWORD PROXY_PASSWD][/NOPROXY] [/NOCANCEL] [/POST TEXT2POST] [/TIMEOUT INT_MS] [/SILENT TEXT2DISPLAY][/RESUME RETRY_QUESTION] [/POPUP PREFIX | /BANNER CAPTION TEXT] [/TRANSLATE LANG_PARAMS]URL1 local_file1 [URL2 local_file2 [...
阅读全文
摘要:本月12号,过完了22岁生日,忽然间觉得自己长大了,呵呵 …就像这份生日礼物中写的一样“No Backspace in Real Life”,我变的更加“勇敢”,更加勇敢的去面对更多困难,例如WinForm 窗体美化这个难题。众所周知、用来开发WinForm的IDE VS在“所见即所得”方面做的相当不错,大大提高了UI的开发速度[相对于 eclipse],但是要做出一套界面相当美观的UI还是要费一些功夫的。就在12号当天我还在为窗体的美化而发愁呢,并且还有点畏惧它,可到了13号、也就是昨天了却一整天都在研究这个东西,哈哈,是不是变了?我想美化窗体或者是其他控件、无外乎三种方式:1、重写WinF
阅读全文
摘要:1、主要用途:使用户可以在窗体中导航网页。2、注意:WebBrowser控件会占用大量资源。使用完该控件后一定要调用Dispose方法,以便确保及时释放所有资源。必须在附加事件的同一线程上调用Dispose方法,该线程应始终是消息或用户界面 (UI) 线程。3、WebBrowser使用下面的成员可以将控件导航到特定 URL、在导航历史记录列表中向后和向前移动,还可以加载当前用户的主页和搜索页:1.URL属性:可读、可写,用于获取或设置当前文档的 URL。 WebBrowser控件维护浏览会话期间访问的所有网页的历史记录列表。设置Url属性时,WebBrowser控件导航到指定的 URL 并将该
阅读全文
摘要:public class MouseAPI { [DllImport("user32.dll")] static extern bool SetCursorPos(int X, int Y); [DllImport("user32.dll")] static extern void Mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo); [Flags] public enum MouseEventFlag : uint { Move = 0x0001
阅读全文
摘要:delegate :当委托被调用时,“委托实例[delegate]” “委托[=]” “某人[Method]” “去做某事[Action]”即可表示为:delegate = Method(){ Action }event :当事件发生时,“事件[event]” “通知[+=]” “委托实例[delegate]” “事件[event]发生了”,然后 “委托实例[delegate]” “委托[=]” “某人[Method]” “去做某事[Action]” 即即可表示为:event += delegate = Method(){ Action }或用匿名委托的表达方式也可简写成:event += d
阅读全文
摘要:扩展方法是C# 3.0的又一个特性,它允许开发人员在不创建派生类型和不修改原始类型的基础上,直接向现有类型"添加"方法。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。包含扩展方法的类必须定义为静态(static)类,扩展方法也必须定义为静态(static)方法,它的第一个参...
阅读全文
摘要:+-----------------------------------------------------------------------------------------------------------------------------------+ | | Windows | Windows | Windows | Windows NT | Windows | Windows | Windows | Windows |+-----------------------------------------------------------------------------
阅读全文
摘要:导致Ctrl + Z失效的原因由以下2点连锁引发而导致:1、为了解决 WebBrowser 控件导航时弹出“保存对话框”,使用了 this.webBrowser.Document.OpenNew(true); // 防止 弹出保存对话框, 该方法指示新的文本改变将会在新窗口中打开。2、 由原因1导致 webBrowser 控件的编辑模式失效, 表面上看上去还是可以编辑的,但实际上新窗口内部已经不支持编辑了。注:这里涉及到了WebBrowser控件的特殊性,它是由三层控件嵌套而成的,外面的两层是大概负责容器、 及 响应用户操作的, 而最内层的则是承载HTML标记,并通过渲染引擎展示HTML内容。
阅读全文
摘要:C# 中有两种不同的相等:引用相等和值相等。值相等是大家普遍理解的意义上的相等:它意味着两个对象包含相同的值。例如,两个值为 2 的整数具有值相等性。引用相等意味着要比较的不是两个对象,而是两个对象引用,这两个对象引用引用的是同一个对象。这可以通过简单的赋值来实现,如下面的示例所示:System.Object a = new System.Object();System.Object b = a;System.Object.ReferenceEquals(a, b); //returns true在上面的代码中,只存在一个对象,但存在对该对象的多个引用:a 和 b。由于它们引用的是同一个对象,
阅读全文
摘要:版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://cjbskysea.blogbus.com/logs/36323046.html对于处理所有消息.net 提供了wndproc进行重写WndProc(ref Message m)protected override void WndProc(ref Message m) { const int WM_SYSCOMMAND = 0x0112; const int SC_CLOSE = 0xF060; if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_C
阅读全文
摘要:/// <summary> /// HTTP 下载文件 /// Current Thread Download /// </summary> /// <param name="URL">下载文件地址</param> /// <param name="buffer">将下载的文件存入该字节数组</param> /// <param name="Prog">用于显示的进度条</param> public void DownloadFile(st
阅读全文