笔记:有关C#浅克隆与深克隆的一个例子

浅克隆

对于 值类型 直接复制源内容

对于 引用类型 复制的是引用,不是引用所指向的对象

深克隆

对于 值类型 直接复制源内容

对于 引用类型 将生成此 引用 所指向的对象的副本

一个简单的例子,运行后的结果:

====例子中的人物关系====
Kim的女友是Amy,他的前女友是Ann
Kim的弟弟是Tony,Tony的女友是Theresa
Press any key

Kim’s girlfriend is Ann, and his ex-grilfriend called Ann.
Press any key

Kim’s girlfriend is Theresa, and his ex-grilfriend called Theresa.
Tony’s girlfriend is Theresa.
Press any key

Kim’s girlfriend is Amy, and his ex-grilfriend called Ann.
Tony’s girlfriend is Theresa.

分类:备忘笔记 日期:2011年07月30日 评论:1条 阅读全文

在WebBrowser(WinForm)中执行Javascript(jQuery)

去年搞的139说客活跃软件,采用WinForm开发,主要通过WebBrowser控件,对139说客的网页进行访问操作,如登录139社区,发说客,拨打G3电话。

之前我一直使用C#对表单元素进行操作,如模拟鼠标点击表单对象获取焦点,给表单对象赋值等等,对于简单的未经Javascript处理的表单对象进行这样的操作问题不大,但当遇到139说客的这个文本框(下图所示)时却不奏效了。

分类:雕虫小技 日期:2011年01月13日 评论:21条 阅读全文

.Net Winform(C#) WebBrowser + Javascript 随意说

使用Winform WebBrowser控件对访问页面执行、改写、添加Javascript代码,可以解决许多问题,实现你想要的效果。

可以通过引用Microsoft.mshtml,实现对Javascript的操作,代码如下:


mshtml.IHTMLDocument2 doc = webBrowser1.Document.DomDocument as mshtml.IHTMLDocument2;
mshtml.IHTMLWindow2 win = doc.parentWindow as mshtml.IHTMLWindow2;
win.execScript(@"alert('hello webbrowser')", "javascript");

其实还有一种更好的、无需引用Microsoft.mshtml的实现方式:


HtmlElement ele = webBrowser1.Document.CreateElement("script");
ele.SetAttribute("type", "text/javascript");
ele.SetAttribute("text", "alert('hello webbrowser')");
webBrowser1.Document.Body.AppendChild(ele);

这种使用.Net框架本身所提供的对象,相比引用框架外的COM,好处是显而易见的,这将更方便于安装部署至客户机上。

分类:雕虫小技 日期:2010年05月05日 评论:5条 阅读全文