随笔分类 -  C#/.NET

摘要:这一篇文章转载自:http://www.xuebuyuan.com/390279.html 我对这篇文章进行了一一的验证,确实是这样子的,也明白了很多东西,觉得很有用,转载过来希望能够帮助大家。 1. 层次结构(针对构造函数) 要实例化的类的构造函数本身不能初始化类,还必须调用基类中的构造函数。所以 阅读全文
posted @ 2016-05-04 17:08 IT少年 阅读(1841) 评论(0) 推荐(1)
摘要:继续上节的对象深拷贝,上节讲了通过序列化和反序列化来实现深度拷贝,这一节我们来讲述一下第二种深度拷贝的方法,反射。通过反射来实现深度拷贝。 反射主要是在运行时获取对象的元信息,System.Reflection命名空间允许我们在程序运行时来获取对象的信息、创建已存在类的实例,也能够获取对象的属性和执 阅读全文
posted @ 2016-03-17 21:26 IT少年 阅读(1586) 评论(2) 推荐(0)
摘要:简介: System.Object 几乎是所有的类、结构、委托类型的基类。System.Object有一个MemberwiseClone 的方法来帮助我们创建一个当前对象的实例。 存在的问题: System.Object 提供的MemberwiseClone 方法只是对象的浅拷贝,只能把当前对象的非 阅读全文
posted @ 2016-03-17 18:23 IT少年 阅读(2055) 评论(0) 推荐(0)
摘要:在C#中使用LINQ To SQL 阅读全文
posted @ 2015-02-05 11:54 IT少年 阅读(3654) 评论(0) 推荐(0)
摘要:译文出处:http://www.codeproject.com/Tips/867866/Extension-Method-for-Generic-List-Collection-to-Da这段代码是能够帮助你把泛型集合List转出成DataTable的扩展方法。背景:不知道你是否知道这个扩展方法,但... 阅读全文
posted @ 2015-02-01 22:22 IT少年 阅读(1869) 评论(0) 推荐(0)
摘要:CLR(CommonLanguageRuntime)公共语言运行时,允许以传引用而非传值的方式传递参数。在C#中,这是用关键字 out 和ref来做到的。 从CLR角度来看,这两个关键字没什么区别,生成的IL代码都是一样的。但是C#编译器是将这两个关键字区别对待的,而且这个区别决定了由哪个方法负责... 阅读全文
posted @ 2014-09-21 22:53 IT少年 阅读(580) 评论(0) 推荐(0)
摘要:C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限 public void SetFileRole(string foldPath) { DirectorySecurity fsec = new DirectorySecurity(); ... 阅读全文
posted @ 2014-05-22 14:44 IT少年 阅读(441) 评论(0) 推荐(0)
摘要:线程堆栈:简称栈 Stack托管堆: 简称堆 Heap使用.Net框架开发程序的时候,我们无需关心内存分配问题,因为有GC这个大管家给我们料理一切。如果我们写出如下两段代码:1 代码段1:2 3 public int AddFive(int pValue)4 {5 int result;6 result = pValue + 5;7 return result;8 } 1 代码段2: 2 3 public class MyInt 4 { 5 public int MyValue; 6 } 7 8 public MyInt AddFive(int pValue) 9 {10 MyInt re.. 阅读全文
posted @ 2013-12-10 10:47 IT少年 阅读(8853) 评论(0) 推荐(8)
摘要:CLR(公用语言运行时)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。.NET提供了一个运行时环境,叫做公用语言运行时(Commen Language Runtime),是一种多语言执行环境,支持众多的数据类型和语言特性。他管理着代码的执行,并使开发过程变得更加简单。这是一种可操控的执行环境,其功能通过编译器与其他工具共同展现。依靠一种以运行时为目标的编译器开发的代码叫做可操控代码managed code。与之相对的是unmanaged code。元数据metadata:为了使运行时环境可以向可操控代码提供服务,语言编译器 阅读全文
posted @ 2013-08-15 22:12 IT少年 阅读(683) 评论(0) 推荐(0)
摘要:1 double[] weights={1.0,2.0,3.0,4.0};2 double result=handler(weights); 先来看一个例子:某人有三子,让他们各自带一样东西出门,并带回一头猎物。可以理解为一种父亲对儿子的委托:猎物 办法(工具 某工具)三个人执行委托的方法各不相同兔子 打猎(工具 弓)野鸡 买(工具 钱)狼 诱捕(工具 陷阱)什么是委托?委托是一个类型,用来指称所有形式相同的方法(返回值类型相同而且参数也相同)。1 public delegate double Handler(double[] ds);2 public double Sum(double[] 阅读全文
posted @ 2013-08-02 21:54 IT少年 阅读(302) 评论(0) 推荐(0)
摘要:1、用字符串分隔: usingSystem.Text.RegularExpressions; stringstr="aaajsbbbjsccc"; string[]sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase); foreach(stringiinsArray)Response.Write(i.ToString()+"<br>"); 输出结果: aaa bbb ccc 2、用多个字符来分隔: stringstr="aaajbbbscccjdddseee&q 阅读全文
posted @ 2013-03-19 21:33 IT少年 阅读(480) 评论(0) 推荐(0)
摘要:ArrayList与Array的区别概述ArrayList 是数组的复杂版本。ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能。例如:Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的。如果更改了 ArrayList.Capacity 属性的值,则自动进行内存重新分配和元素复制。ArrayList 提供添加、插入或移除某一范围元素的方法。在 Array 中,您只能一次获取或设置一个元素的值。使用 Synchronized 方法可以很容易地创建 ArrayList 的同步版本。而 Array 将一直保持它直到. 阅读全文
posted @ 2013-03-19 21:14 IT少年 阅读(3320) 评论(0) 推荐(0)
摘要:当我们在初学使用C#时,常常会不知道该用StringBuilder合适还是用String高效,下面是我在学习当中对StringBuilder和String的区别总结,分享给大家。String类有不可改变性。每次执行字符操作时,都会创建一个新的String对象。StringBuilder 类解决了对字符串进行重复修改的过程中创建大量对象的问题。初始化一个StringBuilder 之后,它会自动申请一个默认的StringBuilder 容量(默认值是16),这个容量是由Capacity来控制的.并且允许,我们根据需要来控制Capacity的大小,也可以通过Length来获取或设置StringBu 阅读全文
posted @ 2013-03-16 18:12 IT少年 阅读(5468) 评论(0) 推荐(0)