C#小知识点记录,对象的深拷贝

时间:2022-12-17 18:21:11
  1. 在CSDN中的定义是:

     public static string CompareExchange(
ref string location1,
string value,
string comparand
)

   

 用locationl与comparand进行比较,如果相等,那么locationl的值就是value的值;如果不等locationl的值就不变。函数等同于一下函数(简单模拟):

     static string CompareExchange(ref string location1, string value, string comparand)
{
if(location1==comparand)
{
location1 = value;
}
return value;
}

示例:

             string s1 = "";
string s2 = "";
string s3 = "";
string s4 = Interlocked.CompareExchange(ref s1, s2, s3); //如果s1等于s3,那么就s2的值赋给s1,表达式的值是s2的值。
Console.WriteLine(s1);
Console.WriteLine(s4);

输出:

C#小知识点记录,对象的深拷贝

2.知识点二

下面是一个有趣而又使用的方法,利用序列化对一个对象进行深拷贝

  public static object DeelClone(object original)               //利用序列化创建对象的深拷贝
{ using (MemoryStream stram = new MemoryStream()) //构造临时内存流
{ IFormatter formatter = new BinaryFormatter(); //构造一个序列化格式化器 formatter.Context = new StreamingContext(StreamingContextStates.Clone); formatter.Serialize(stram, original); //将流对象序列化到内存流中 stram.Position = ; //反序列化之前,定位到内存流德尔起始位置 return formatter.Deserialize(stram); //将对象图反序列化成一组新的对象图,
//并且返回对象图(深拷贝)的根
}
}

C#小知识点记录,对象的深拷贝的更多相关文章

  1. C#小知识点记录(QQ交流群的一个小问题)Linq提取数据

    请教 这里 LINQ想 找到 最后的 4条 记录 然后放在 这里这个 List Linq查找怎么写呀? 解答:写了一个小例子作为解答. namespace C_Sharp { class Progra ...

  2. 日常css和js小知识点记录

    2015-6-29 1.<meta name="viewport" content="width=device-width,user-scalable=no&quo ...

  3. iOS小知识点记录

    1.创建视图的两种方法:用代码创建视图,创建XIB文件.如何决定使用哪种方法?参考法则:如果视图没有子视图,就用代码创建:如果有子视图,就通过XIB文件创建. 2.创建视图的时候,视图控制器会调用lo ...

  4. golang 小知识点记录

    获取url中的参数及输出到页面的几种方式 func SayHello(w http.ResponseWriter, req *http.Request) { req.Method //获取url的方法 ...

  5. js&comma;css小知识点记录

    JS手册中提到:可以使用任意表达式作比较表达式.任何值为0.null.未定义或空字符串的表达式被解释为 false.其他任意值的表达式解释为 true.也就是说,这里会隐式的转换为布尔值.       ...

  6. springMVC等小知识点记录。。。持续更新

    1.springMVC 项目根路径访问页面配置 <!-- 表示当访问主页时自动转发到index控制器 --> <mvc:view-controller path="/&qu ...

  7. React Native小知识点记录

    1>查看 RN 的所有历史版本: npm view react-native versions -json 2>查看 RN 的当前版本: npm view react-native ver ...

  8. css 设置小知识点记录

    1.消除控件与控件之间的边界 /* 公共样式 用于消除控件与控件之间的边界 */ *{ margin:0; padding:0} 2.设置背景图片大小与控件大小一致 #frame_top{ min-h ...

  9. C&num; 小知识点记录

    1.当计算数据有小数点时不要使用float和double类型的数据,使用这两个会计算不准确.使用decimal 2.如果使用decimal计算数据,遇到除不进的数据有很多小数点的时候,在计算结果后面接 ...

随机推荐

  1. TSQL 分组集(Grouping Sets)

    分组集(Grouping Sets)是多个分组的并集,用于在一个查询中,按照不同的分组列对集合进行聚合运算,等价于对单个分组使用“union all”,计算多个结果集的并集.使用分组集的聚合查询,返回 ...

  2. Webform Application、ViewState

    Application(全局对象) Application对象生存期和Web应用程序生存期一样长,生存期从Web应用程序网页被访问开始,HttpApplication类对象Application被自动 ...

  3. Spring框架学习路线和概述

    Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合. Spring框架的概述: 1. 什么是Spring Spring是分层的JavaSE/EE ...

  4. c&num; winforms TextBox的记忆功能

    c# winforms TextBox的记忆功能 1:在项目上点右键  sproperties-settings 添加项目 如 MyText  类型 String 2: 获取值:   string l ...

  5. NSNumber 、 NSValue 、 日期处理 、 集合类 、 NSArray&lpar;一&rpar;

    1 基本数据类型的封装 1.1 问题 我们所学的所有基本数据类型,如int.float.double.char等,都不是对象,不能向它们发送消息.然而,在Foundation中的许多类,如NSArra ...

  6. The init method

    The init method is a special method that gets invoked when an object is instantiated. Its full name ...

  7. ThinkPHP第七天&lpar;F函数使用,项目分组配置,项目分组模板文件放置规则配置&rpar;

    1.F(文件名称,写入数据,写入地址),用于将数据写入至磁盘文件中,如F('Data',$arr,'./Data/'),作用是将$arr写入至网站根目录的Data文件夹中的Data.php中. 2.读 ...

  8. 谈谈一些有趣的CSS题目(十五)-- 谈谈 CSS 关键字 initial、inherit 和 unset

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  9. 面向对象(&lowbar;&lowbar;item&lowbar;&lowbar;)

    #Author : Kelvin #Date : 2019/1/20 21:37 class People: def __getitem__(self, item): print("geti ...

  10. Vue-Router路由 Vue-CLI脚手架和模块化开发 之 使用路由对象获取参数

    使用路由对象$route获取参数: 1.params: 参数获取:使用$route.params获取参数: 参数传递: URL传参:例 <route-linke to : "/food ...