文章分类 -  C#基础知识

摘要:.NET提供了System.Threading.Monitor类允许同一进城中的线程实现同步,是一种更快速、更轻量级的锁机制。可以使用该类来保护对某些变量的访问,或对某些一次只能在一个线程中执行的代码设置访问权限。使用实例(片段代码):readonly object theLock=new obje... 阅读全文
posted @ 2014-07-15 11:22 邹邹 阅读(601) 评论(0) 推荐(1)
摘要:C#中,Thread类有一个IsBackground 的属性.MSDN上对它的解释是:获取或设置一个值,该值指示某个线程是否为后台线程。个人感觉这样的解释等于没有解释..Net中的线程,可以分为后台线程和前台线程。后台线程与前台线程并没有本质的区别,它们之间唯一的区别就是:后台线程不会防止应用程序的... 阅读全文
posted @ 2014-07-14 17:13 邹邹 阅读(205) 评论(0) 推荐(0)
摘要:Process.ProcessorAffinity 属性:public IntPtr ProcessorAffinity { get; set; }属性值:位掩码,表示关联进程内的线程可以在其上运行的处理器。默认值取决于计算机上的处理器数。默认值为 2 n -1,其中 n 是处理器数。在 Windo... 阅读全文
posted @ 2014-07-14 16:55 邹邹 阅读(1421) 评论(0) 推荐(0)
摘要:今天是第一次在C#中接触Thread,自己研究了一下其中Thread.Join()这个方法,下面谈谈自己的理解。 Thread.Join()在MSDN中的解释很模糊:Blocks the calling thread until a thread terminates有两个主要问题:1.什么是... 阅读全文
posted @ 2014-07-14 15:55 邹邹 阅读(134) 评论(0) 推荐(0)
摘要:1.用msiexec 命令来卸载软件平常我们手动卸载软件都是到控制面板中的"添加/删除"程序中去卸载软件, 或者通过程序自带的卸载软件来卸载。我们可以通过 MsiExec.exe /X{ProductCode} 命令来卸载程序。关于MsiExec.exe 请看http://technet.micro... 阅读全文
posted @ 2014-07-09 15:27 邹邹 阅读(2913) 评论(0) 推荐(0)
摘要:有时候你在操作数据库的时候数据库出问题了,而你又要把数据库drop时就出问题了:Cannot drop database "databasename" because it is currently in use.这时你只要按照以下方法做就可以了:use mastergoalter database... 阅读全文
posted @ 2014-07-09 11:19 邹邹 阅读(852) 评论(0) 推荐(0)
摘要:1,从System.String[]转到ListSystem.String[] str={"str","string","abc"};List listS=new List(str); 2, 从List转到System.String[]List listS=new List();listS.Add(... 阅读全文
posted @ 2014-07-07 09:03 邹邹 阅读(228) 评论(0) 推荐(0)
摘要:有时候在try catch中需要区分具体的那个异常,下面一些截图sqlexception中:catch(sqlexception ex)ex.Number=2627 主键重复ex.Number=-2 timeoutex.Number=17 sql server 不存在 或者拒绝访问ex.Number... 阅读全文
posted @ 2014-06-27 13:41 邹邹 阅读(1663) 评论(0) 推荐(0)
摘要:如果获得当前进程的Id用:Process[] processes = Process.GetProcesses(); foreach(Process process in processes) { if(process.ProcessName == "进程名" { MessageBox.Show(p... 阅读全文
posted @ 2014-06-24 10:54 邹邹 阅读(1764) 评论(0) 推荐(0)
摘要:public interface ICustomerRepository: { List GetAll(); Customer Get(int customerId); void Add(Customer customer); } ... 阅读全文
posted @ 2014-06-19 14:39 邹邹 阅读(1138) 评论(0) 推荐(0)
摘要:The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid要么是没有发现在配... 阅读全文
posted @ 2014-06-18 18:10 邹邹 阅读(251) 评论(0) 推荐(0)
摘要:C# SerializableSystem.SerializableAttribute串行化是指存储和获取磁盘文件、内存或其他地方中的对象。在串行化时,所有的实例数据都保存到存储介质上,在取消串行化时,对象会被还原,且不能与其原实例区别开来。只需给类添加Serializable属性,就可以实现串行化... 阅读全文
posted @ 2014-06-18 14:45 邹邹 阅读(211) 评论(0) 推荐(0)
摘要:取得某月和上个月第一天和最后一天的方法 /// /// 取得某月的第一天 /// /// 要取得月份第一天的时间 /// private DateTime FirstDayOfMonth(DateTime d... 阅读全文
posted @ 2014-06-04 13:51 邹邹 阅读(702) 评论(0) 推荐(0)
摘要:一:C# 连接SQL数据库Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;Data Source=190.190.200.100,1433;Network Li... 阅读全文
posted @ 2014-04-23 10:37 邹邹 阅读(695) 评论(0) 推荐(0)
摘要:yield是C#为了简化遍历操作实现的语法糖,我们知道如果要要某个类型支持遍历就必须要实现系统接口IEnumerable,这个接口后续实现比较繁琐要写一大堆代码才能支持真正的遍历功能。举例说明using System;using System.Collections.Generic;using Sy... 阅读全文
posted @ 2014-04-17 11:19 邹邹 阅读(118) 评论(0) 推荐(0)
摘要:Enum.Parse()方法。这个方法带3个参数,第一个参数是要使用的枚举类型。其语法是关键字typeof后跟放在括号中的枚举类名。第二个参数是要转换的字符串,第三个参数是一个bool,指定在进行转换时是否忽略大小写。最后,注意Enum.Parse()方法实际上返回一个对象引用—— 我们需要把这个字符串显式转换为需要的枚举类型(这是一个取消装箱操作的例子)。对于上面的代码,将返回1,作为一个对象,对应于TimeOfDay.Afternoon的枚举值。在显式转换为int时,会再次生成1。using System;public class ParseTest{ [FlagsAttribute... 阅读全文
posted @ 2014-03-19 13:31 邹邹 阅读(5595) 评论(0) 推荐(0)
摘要:DataColumn 是用来模拟物理数据库中的列。DataColumn 的组合组成了DataTable中列的架构。生成 DataTable 架构的方法就是向DataColumnCollection中添加DataColumn对象来生成架构。同物理数据库一样,列是有类型的,比如 varchar, datatime, int 等,DataColumn有DataType属性表示这一列所存储的数据种类。由于DataTable所包含的数据通常合并回其原始数据源,因此必须使其数据类型与数据源中的数据类型匹配。这个匹配关系,可以再 msdn 中的 《数据类型映射 (ADO.NET)》章节查询到。 在物理数据. 阅读全文
posted @ 2014-03-18 14:26 邹邹 阅读(3524) 评论(0) 推荐(0)
摘要:Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的。ArrayList 提供添加、插入或移除某一范围元素的方法。在 Array 中,您只能一次获取或设置一个元素的值。使用 Synchronized 方法可以很容易地创建 ArrayList 的同步版本。而 Array 将一直保持它直到用户实现同步为止。方法/步骤C# array数组的用法范例:type[] typename=new type[size];如int[] a=new int[2];string[] str=new string[5];实事上我们平常是用int[],string[]...的,此时我们已经.. 阅读全文
posted @ 2014-03-02 11:05 邹邹 阅读(105) 评论(0) 推荐(0)
摘要:.NET中有三种数组:一维数组,多维数组和锯齿数组。锯齿数组,也叫做数组的数组。 多维数组的大小是矩形的,例如3X3个元素。而锯齿数组的大小设置比较灵活,在锯齿数组中,每一行都可以有不同的大小。 在声明锯齿数组时,要依次放置开闭括号。在初始化锯齿数组时,先设置该数组包含的行数。定义各行中元素的第二个括号设置为空,因为这类数组的每一行包含不同的元素数,之后一行指定行的元素个数:int[][] jagged = new int[3][];jagged[0] = new int[2] {1,2 };jagged[1] = new int[6] { 3,4,5,6,7,8};jagged[2] = n 阅读全文
posted @ 2014-03-02 10:38 邹邹 阅读(1353) 评论(0) 推荐(0)
摘要:1.C# 中的数组1.1 定义数组:1.1.1 定义不初始化:数据类型[] 数组名称= new 数据类型[元素个数]; 1.1.2 定义并初始化:数据类型[] 数组名称= new 数据类型[]{array1,array2};1.2 System.Array 类 C#中提供了一个现成的名为System.Array的类,可以通过这个类提供的属性和方法对数组执行大多数操作。 1.2.1 System.Array 对象创建:Array类是一个抽象类,不能使用如下方式创建 Array array=new Array(); C# 中提供了CreateInstance()方法创建数组。例如: Array a 阅读全文
posted @ 2014-03-02 10:31 邹邹 阅读(2007) 评论(0) 推荐(0)