- 浏览: 724739 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1081)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (0)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (0)
- [网站分类]4.其他技术区 (0)
- [网站分类]5.企业信息化 (0)
- [网站分类]6.读书心得区(技术书籍阅读心得、书籍推荐) (0)
- [网站分类]7.提问区(.NET技术方面的提问) (2)
- [网站分类]8.技术转载区(.NET技术文章转载, 请注明原文出处) (0)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [网站分类]Dottext区 (0)
- [网站分类]GIS技术 (0)
- [网站分类]IT英才专区(IT职场交流) (0)
- [网站分类]SharePoint (0)
- [网站分类]博客园.NET俱乐部(俱乐部组织与活动方面的文章) (0)
- [网站分类]软件发布区(发布自己开发的代码、软件) (0)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (0)
- [网站分类]业界新闻 (1)
- 技术 (1)
- [随笔分类]生活感悟 (10)
- [随笔分类]C# (30)
- [随笔分类]AjaxPro教程 (3)
- [发布至博客园首页] (5)
- [随笔分类]简历 (0)
- [随笔分类]Linux (2)
- [随笔分类]技术聚会 (2)
- [随笔分类]ORM (1)
- [随笔分类]php (1)
- [随笔分类]创业 (1)
- [随笔分类]奇技淫巧 (1)
- [随笔分类]计划 (1)
- [随笔分类]架构&分层 (1)
- [随笔分类]整合行销 (1)
- [随笔分类]mac (1)
- [网站分类].NET新手区 (45)
- [网站分类]非技术区 (5)
- [网站分类]招聘区 (0)
- [随笔分类]单元测试 (1)
- [网站分类]其他技术区 (3)
- [网站分类]代码与软件发布 (6)
- [网站分类]提问区 (24)
- [随笔分类]ASP.NET (2)
- [随笔分类]FAQ (12)
- [随笔分类]开发人员工具 (1)
- [随笔分类]朗志轻量级项目管理解决方案 (1)
- [网站分类]读书区 (1)
最新评论
-
天使建站:
写和乱七八糟的 不知道从哪复制过来的 还是看这里吧j ...
jquery数组 -
hyn450:
你好,我最近也想了解一下竞争情报。不知道能不能交流一下呢 ?
最近的工作 -
lattimore:
这个连接打不开了阿!
使用vnc连ubuntu desktop -
MZhangShao:
奉劝你一句,以后在Ubuntu 用apt-get安装成功的软件 ...
关于xrdp的安装设置 -
f002489:
strftime
python下datetime类型的转换
Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace test
{
public delegate void aa(heihei a);
class Class15
{
static void Main(string[] args)
{
heihei a = new heihei()
{
id = "1"
};
aa aa=new aa(test2);
IAsyncResult ar=aa.BeginInvoke(a, null, null);
Thread.Sleep(3000);
a.id = "2";
test3(a);
aa.EndInvoke(ar);
Console.ReadLine();
}
private static void test2(heihei a)
{
Console.WriteLine("test2");
Console.WriteLine(a.id);
Thread.Sleep(10000);
Console.WriteLine(a.id);
}
private static void test3(heihei a)
{
Console.WriteLine("test3");
Console.WriteLine(a.id);
}
}
public class heihei
{
public string id { get; set; }
}
}
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace test
{
public delegate void aa(heihei a);
class Class15
{
static void Main(string[] args)
{
heihei a = new heihei()
{
id = "1"
};
aa aa=new aa(test2);
IAsyncResult ar=aa.BeginInvoke(a, null, null);
Thread.Sleep(3000);
a.id = "2";
test3(a);
aa.EndInvoke(ar);
Console.ReadLine();
}
private static void test2(heihei a)
{
Console.WriteLine("test2");
Console.WriteLine(a.id);
Thread.Sleep(10000);
Console.WriteLine(a.id);
}
private static void test3(heihei a)
{
Console.WriteLine("test3");
Console.WriteLine(a.id);
}
}
public class heihei
{
public string id { get; set; }
}
}
我一直都是用深克隆,因为虽然简单类可能只有值类型,但是指不定什么时候就有个引用类型。深克隆目前来说比较实在的方法是序列化加反序列化,当然你也可以自己使用反射,或者一个对一个的赋值。我一般都是自己做一个方法比如叫DeepCopy().
我一直知道.net好像提供了什么Clone()还有什么MemberwiseClone(),提供了一些克隆相关的东东,但是没有弄清楚,今天有时间就看了一下,原来.net提供了一个ICloneable接口,该接口下有一个Clone()方法,你可以实现它用来实现你自己的克隆方式,比如深克隆或是浅克隆,MemberwiseClone()是object类中的一个方法,用来实现类的浅克隆,这个是.net提供的现成方法,不过大多数时候它应该没有什么用处,我们需要自己实现自己的深克隆.
.net提供了一个ICloneable接口只是为我们方法名约定,用这个来Clone方法来表示类的克隆机制,它并没有提供什么有建设性的东东。我们使用名为 DeepCopy一样可以,只是如果大家都用它,可能就会成为一种约定熟成。OK,以后我就用Clone作为我的类的深克隆的名称。
这里给一个使用MemberwiseClone()实现浅克隆结合异步编程的例子,
Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace test.test
{
public delegate void aa(heihei a);
class Class16
{
static void Main(string[] args)
{
heihei a = new heihei()
{
id = "1"
};
aa aa = new aa(test2);
IAsyncResult ar = aa.BeginInvoke(a, null, null);
heihei c = a.Clone() as heihei;
c.id = "2";
test3(c);
aa.EndInvoke(ar);
Console.ReadLine();
}
private static void test2(heihei a)
{
Console.WriteLine("test2");
Console.WriteLine(a.id);
Thread.Sleep(10000);
Console.WriteLine(a.id);
}
private static void test3(heihei a)
{
Console.WriteLine("test3");
Console.WriteLine(a.id);
}
}
public class heihei:ICloneable
{
public string id { get; set; }
public object Clone()
{
return MemberwiseClone();
}
}
}
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace test.test
{
public delegate void aa(heihei a);
class Class16
{
static void Main(string[] args)
{
heihei a = new heihei()
{
id = "1"
};
aa aa = new aa(test2);
IAsyncResult ar = aa.BeginInvoke(a, null, null);
heihei c = a.Clone() as heihei;
c.id = "2";
test3(c);
aa.EndInvoke(ar);
Console.ReadLine();
}
private static void test2(heihei a)
{
Console.WriteLine("test2");
Console.WriteLine(a.id);
Thread.Sleep(10000);
Console.WriteLine(a.id);
}
private static void test3(heihei a)
{
Console.WriteLine("test3");
Console.WriteLine(a.id);
}
}
public class heihei:ICloneable
{
public string id { get; set; }
public object Clone()
{
return MemberwiseClone();
}
}
}
再给一个相关的例子,用来测试,如果不用浅克隆,对对象的修改会影响到所有操作该对象的地方即使你使用了Cls c2=c1
c2,c1均指向同一个引用,
发表评论
-
关于分层架构中的业务实体层的使用一直不太清楚,可否指点一下?
2007-03-23 09:10 671我知道业务逻辑层又可细分为三个层次,分别是业务外观层业务规则层 ... -
xml反串行化
2007-07-02 17:23 7321using System; 2using Syste ... -
WriteXmlSchema(xsdFileName)和GetXmlSchema()输出的内容的差异
2007-07-04 19:00 881利用DataSet.ReadXml载入一个xml文件,再使用G ... -
对websharp中aspect的改进(待续)
2007-11-17 14:27 692缘起 为了在我的《朗志轻量级项目管理解决方案》项目中应用 ... -
WebSharp Aspect改进(续2)
2007-11-19 21:39 700接着上次在《朗志轻量级项目管理解决方案》中对Aspec ... -
TreeView(树形控件)中常用到的属性和事件
2007-11-19 22:22 12941.TreeView(树形控件) ... -
有没有适合的的面向对象的查询语言(Object Query Language)
2007-11-28 10:15 759在我做《朗志轻量级项目管理解决方案》的过程中,我希望 ... -
问题解答集
2007-11-29 18:11 4401 如何在源代码的目录下添加一个测试文件 ... -
FckEditor自定义按钮
2007-11-29 18:35 829目录 FckEditor自定义按钮 1 目录 ... -
GhstDoc2.1.1使用手册
2007-11-29 18:39 720目录 GhstDoc2.1.1使用手册 1 ... -
Log4net使用说明
2007-11-29 18:44 784Log4net使用说明 1 修改历史纪录 ... -
MySQLHelper类使用说明
2007-11-29 18:46 1314目录 MySQLHelper类使用说明 1 目录 ... -
NDoc1.3.1使用手册
2007-11-29 18:47 764目录 NDoc1.3.1使用手册 1 目录 ... -
程序中操作Word
2007-11-29 18:52 727目录 程序中操作Word 1 目录 2 ... -
利用SMTP服务发送电子邮件
2007-11-29 18:58 1352目录 利用SMTP服务发送电子邮件 1 目录 ... -
程序中操作Excel
2007-11-29 18:59 637目录 程序中操作Excel 1 目录 ... -
访问被拒绝:“AjaxPro”的解决方案
2007-11-29 19:01 531目录 访问被拒绝:&qu ... -
sqlserver的版本号
2008-02-27 21:01 819当你安装了sqlserver 2005之后你就可以使用sqls ... -
在安装有VS2008beta2版本的机子上使用vs2005进行部署出现问题的解决方法
2008-02-27 21:13 679我知道,2008rtm发布已经很久了,不巧的是同学在我的机子上 ... -
忙话codesmith
2008-07-28 15:01 865为什么不是闲话,因为我很忙,项目中新问题是接连不断,上一篇讲到 ...
相关推荐
总结来说,Java的深浅克隆是对象复制的重要手段。浅克隆适用于字段不包含可变对象或者对象的深层结构不需要独立的情况,而深克隆则在需要完整复制对象及其嵌套对象时更为适用。理解并正确使用这两种克隆方式对于编写...
这里涉及到了克隆自身对象。那么也就是对对象进行拷贝。这里就涉及到了这么一个概念。深浅拷贝、何为深拷贝何为浅拷贝呢?我们一起来看看吧。 浅拷贝 首先我们看看浅拷贝。浅拷贝就是将对象中的所有字段复制到新...
4. **深浅克隆与比较**: - 浅克隆只复制对象的第一层属性,而深克隆会递归复制整个对象及其嵌套的对象或数组。深浅比较则用于检查两个对象是否具有相同的结构和值,这在比较复杂数据结构时非常有用。 5. **ES6...
当我们讨论深浅拷贝时,主要关注的是对象类型的数据,因为原始数据类型赋值时,存储的是值的直接拷贝,而对象类型赋值时,存储的是指向原始数据的引用地址。 浅拷贝(Shallow Copy)是指创建一个新对象,这个对象...
关于类和克隆,主要讨论了克隆的深浅本质。数据结构和队列部分,则不仅深入讲解了集合的使用和关系,还包括队列内容的掌握。 在反射和动态代理部分,重点讲解了反射与动态代理的关系,提供了实际应用场景以及实现...
扩展弹出窗口你可以设置cordinats 你可以得到颜色深浅用法克隆存储库并将源添加到您的项目中将此行添加到您的 gradle 构建文件的依赖项中 compile project(':color_pickers_library') ColorPicker picker = new ...
2. **基础色彩调整**:使用硬边画笔工具,设置模式为“颜色”,不透明度为50%,选择蓝色对皮肤进行涂抹,多次使用不同深浅的蓝色增加层次感。同时,使用紫色对嘴唇进行点缀,使色彩过渡更自然。 3. **去除胡须**:...
1. **Utility classes**:例如,`.bg-blue-500`表示背景颜色为蓝色系的第500级深浅,`.px-4`表示左右填充4个单位。开发者可以根据需要直接添加或叠加类名,实现快速布局。 2. **Responsive design**:Tailwind提供...
酶解过程中,悬浮液绿色的深浅可以作为观察酶解效果的指标之一,颜色变化可能表示细胞壁降解程度。原生质体需经过离心、洗涤,以清除酶和其他杂质,然后可用于细胞融合等后续实验。 5. 动物细胞培养:细胞培养液...
通过多次涂抹不同深浅的蓝色,创造渐变效果。对于特定部位,如嘴唇,可以使用紫色,降低不透明度,以增加自然感。 3. **去除特征**:利用“克隆图章工具”删除胡须,确保目标区域与源区域相似,以保持皮肤的平滑。 ...
此外,SAI还提供了压力感应功能,支持绘图板,这意味着你可以通过控制笔压来改变线条的粗细和颜色的深浅,创造出类似传统绘画的自然效果。 SAI的图层管理功能也是其一大亮点。用户可以轻松创建、合并、隐藏和锁定...
4. 将NC膜浸入单克隆酶标抗体溶液中 5. 将NC膜浸入底物溶液中振摇显色 6. 用流水冲洗数分钟,放入蒸馏水中终止反应 (二)间接法测抗体(以检测旋毛虫病抗体为例) 1. 将特异性抗原点在NC膜上 2. 将待检血清加入,...
2. 基因工程操作流程:题目中提到了DGAT1基因的克隆与表达,涉及逆转录PCR(RT-PCR)用于获取目的基因,感受态细胞的制备用于基因导入,以及抗生素标记(氨苄青霉素和X-gal)用于筛选阳性克隆。此外,通过PCR验证、...
除了以上介绍的工具,Photoshop还有许多其他工具,如克隆图章、橡皮擦、历史画笔、渐变工具、模糊工具等,每个都有其特定的快捷键和用途,熟练掌握这些快捷键能大幅提升编辑效率。在实际使用中,结合工具选项栏的...
以下是关于Swift中颜色操作和"FlatUIColors"库的一些关键知识点: 1. **颜色表示**:在Swift中,颜色可以通过`UIColor`类来表示。`UIColor`提供了许多工厂方法,如`init(red:green:blue:alpha:)`,`init(hexString:...
随着生物技术的进步,例如基因工程抗原和单克隆抗体的应用,以及高度自动化的ELISA检测仪的引入,这项技术的特异性和实用性进一步增强,成为科研、疾病诊断、食品安全、环境监测等多个领域的首选方法。 ELISA试剂盒...
通过洗涤去除未结合的分子,然后添加酶底物,酶的催化反应会产生颜色变化,颜色的深浅直接反映了样品中目标物质的浓度,从而实现定性或定量的分析。 ELISA有多种基本类型,每种类型都有其特定的应用场景和优势: 1...
在JavaScript和jQuery中...`jQuery.extend`可以进行对象的深浅复制,解决引用问题;`$.grep`用于过滤数组元素;而`sort`方法则可以方便地对数组进行排序。在实际开发中,理解这些方法的用法对于优化数据操作至关重要。
7. 白喉棒状杆菌的异染颗粒是该菌的一个特征性结构,可以通过阿尔伯特染色来观察,这种染色法可以使异染颗粒呈现深浅不一的颜色,有助于鉴别白喉杆菌。 8. 确定白喉棒状杆菌是否产毒素的金标准是Elek平板毒力试验,...