文章分类 - C# 知识积累
摘要:首先了解下深拷贝和浅拷贝的定义:浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用.深拷贝(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.在C#中,复制一个基本类型,是全盘复制的。而对于引用类型,只是复制一个引用指针。所以在对其进行深拷贝也...
阅读全文
摘要:这里说四种方法:方法1:直接删除法 DirectoryInfo di = new DirectoryInfo(string Path); di.Delete(true); 注:path是你要删除的非空目录; true:你要删除里面所有的文件,包括文件夹和子文件夹方法2:层级删除法/// /// 删除非空文件夹 /// /// 要删除的文件夹目录 void DeleteDirectory(string path) { DirectoryInfo dir = new DirectoryInfo(path); if (dir.Exists) { DirectoryInfo[] childs = ..
阅读全文
摘要:StringBuilder 采用了构造器设计模式的思想高效地构造一个字符串对象,在构造过程中StringBuilder可以有效避免临时字符串对象的生成。1:当需要操作很长的字符串,或者要对字符串进行非常频繁的操作时,应该使用StringBuilder,其余场合,用String比较方便。2:之所以说平常情况用String比较方便是因为:StringBuilder sb="hello world!"; 这样的语句是不行的,要用:StringBuilder sb=new StringBuilder("hello world!"); 这样子才能初始化一个Stri
阅读全文
摘要:将现有文件复制到新文件,不允许改写现有文件。[C#]public FileInfo CopyTo(string);将现有文件复制到新文件,允许改写现有文件。[C#]public FileInfo CopyTo(string, bool);[C#] 将文件复制到指定路径,允许改写同名的目标文件 COPYusing System;using System.IO;class Test{ public static void Main() { string path = @"c:/temp/MyTest.txt"; string path2 = path + "temp&
阅读全文
摘要:如果是目录可用: DirectoryInfo TheFolder = new DirectoryInfo(PathName); if (TheFolder.Exists) { //。。。。。。。。。。。。。 } 如果是文件可用: FileInfo TheFile = new FileInfo(PathName); if (TheFile.Exists) { //。。。。。。。。。。。。 }using System.IO; ... if(File.Exists("c:/abc.txt")) { ... } if(Directory.Exists("d:/abc/&q
阅读全文
摘要:Invoke and BeginInvoke在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate,至于委托的本质请参考我的另一随笔:对.net事件的看法。一、为什么Control类提供了Invoke和BeginInvoke机制?关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。1、windows程序消息机制Windows GUI程序是基于消息机制的,有个主线程维护着一个消息泵。这个消息泵让windows程序生生不息。Windows GUI程序的消息循环Windows程序有个消息队列,窗体上的所
阅读全文
摘要:引言 Delegate是Dotnet1.0的时候已经存在的特性了,但由于在实际工作中一直没有机会使用Delegate这个特性,所以一直没有对它作整理。这两天,我再度翻阅了一些关于Delegate的资料,并开始正式整理这个C#中著名的特性。本文将由浅入深的谈一下Delegate这个特性。一.Delegate是什么? Delegate中文翻译为“委托”。Msdn中对Delegate的解释如下:C#中的委托类似于C或C++中的函数指针。使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与C或C++中的函数指针不同,委托
阅读全文
摘要:GetUpperBound和GetLowerBound函数GetUpperBound可以获取数组的最高下标。GetLowerBound可以获取数组的最低下标。这样就可以实现对数组的遍历//定义二维数组string[,] myStrArr2=new string[,]{{"油","盐"},{"围城","晨露"},{"毛毛熊","Snoopy"}};for(int i=myStrArr2.GetLowerBound(0);i<=myStrArr2.GetUpperBound
阅读全文
摘要:理解POCO(Plain Old CLR Object)先要理解POJO。 1、什么是POJO? POJO的名称有多种,pure old java object 、plain ordinary java object 等。按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼它。 POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。POCO的概念是从java的POJO借用而来,而两者的含义是一致的,不同的仅仅是使用的语言不一样。所...
阅读全文
摘要:在学习MusicStore教程中,执行程序->查看唱片详细信息时,弹出以下异常:代码如下:Model层Album类结构为:[csharp]view plaincopypublicclassAlbum{publicintAlbumId{get;set;}publicintArtistId{get;set;}publicintGenreId{get;set;}publicstringTitle{get;set;}publicdecimalPrice{get;set;}publicstringAlbumArtUrl{get;set;}publicGenreGenre{get;set;}publ
阅读全文
摘要:Linq中的 First 和 Single 在实际工作中会经常看到,从字面意思上很容易明白,一个是取列表中的第一个元素,一个是取到唯一的元素。如果你想再进一步的了解,可以读读本文。下文参考翻译自:C#/.NET Little Wonders: First() and Single() - Similar Yet DifferentFirst() - 返回序列中的第一个元素事实上这个方法有四种选择:First()返回序列中的第一个,如果没有元素存在就抛出异常InvalidOperationException.First(Predicate)基于你提供的条件返回序列中的第一个,如果没有元素存在就抛
阅读全文

浙公网安备 33010602011771号