
C#
唯音
IT小码农
展开
-
C# 反射实现对只读属性进行赋值操作
需求概述现用户提出这样个需求,其拿到一个只读属性值(只有get方法,没有set),如何强行修改这个属性的值呢?这里的属性可以是单值,常见的string,float,double etc,可以是List 对象集合属性。需求实例现对Product下的Id属性和Detail属性值进行修改。根据对于属性原来的值和属性值类型其存在两种情况:1 属性值为空时,单值、List集合操作为均为append追加操作;2 属性值不为空,操作分两种:对于单值,进行modify操作;对于多值,需要定...原创 2020-05-13 10:30:36 · 3655 阅读 · 0 评论 -
C#高级编程之托管资源与非托管资源
目录参考资料:托管资源与非托管资源:垃圾回收机制简介:非托管资源的释放:参考资料:https://www.cnblogs.com/wangshenhe/archive/2012/08/02/2619467.htmlhttps://www.cnblogs.com/wangshenhe/archive/2012/08/02/2619467.html托管资源与非托管...转载 2019-06-19 17:00:02 · 218 阅读 · 0 评论 -
IEnumerable详解
https://blog.youkuaiyun.com/weixin_42339460/article/details/80733758转载 2019-05-07 14:28:15 · 18680 阅读 · 0 评论 -
C#泛型集合自定义比较器实现排序
目录需求:根据自定义的类中字段实现自定义的排序规则。解决方案:实现:方法一:该自定义类实现IComparable接口。方法二:创建比较器类,该类实现接口IComparer方法三:实现内置Comparison委托总结:需求:根据自定义的类中字段实现自定义的排序规则。解决方案:1.public void Sort(); 使用默认比较器对整个 Sys...原创 2019-03-15 10:36:15 · 1306 阅读 · 0 评论 -
OOP面向对象之OCP(开闭原则)
目录 含义:自我理解:利用简单工厂模式的实现方式:利用反射+配置文件的方式实现OCP:含义:软件实体(包括类、模块、功能等)应该对扩展开放,但是对修改关闭。自我理解:对扩展开发:需求有改动的时候,增加对应的独立拓展模块来实现需求。对修改关闭:不意味着不改变代码,而是在不改变原代码具体实现的逻辑下(具体说就是函数体内部逻辑),通过拓展的方式来重构实现。具体理解...原创 2018-12-11 16:20:52 · 1108 阅读 · 0 评论 -
VS2012下批量修改命名空间
需求:更改解决方案下所有某项目的命名空间步骤:1:ctrl 替换所有项目下的打算替换的空间2: 修改项目->属性->应用程序下的程序集名称和命名空间3:关闭项目文件,打开源代码,修改打算替换的文件夹名称4:用记事本打开.sln文件,替换掉:(本文是替换CVC_tool为main_tool)即可。Microsoft Visual Studio Solution File, Format ...原创 2018-04-10 15:26:07 · 3513 阅读 · 0 评论 -
C#中FileStream和StreamWriter/StreamReader的区别
FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或 StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。这是这两种类的一个重要区别,如果你是准备读取byte数据的话,用StreamReader读取然后用 System.Text.Encodi转载 2017-10-27 16:13:01 · 427 阅读 · 0 评论