c#
文章平均质量分 62
leelong80
从2004开始从事IT技术研发工作至今工作11年,在多个行业工作过。有过asp,vb,c#,c++,java,object c,php;也做编写过 android,IOS 编码,团队管理经验 7年。
展开
-
Microsoft Kinect SDK和PrimeSense OpenNI的区别
原文地址:http://blog.pleasev.org/?p=227Microsoft’s Kinect SDK (Beta)pro: 优点support for audio 支持音频support for motor/tilt 支持马达full body tracking: 全身追踪does not need a calibration转载 2012-05-08 16:30:16 · 1011 阅读 · 0 评论 -
类型推断
当不指定类型实参而调用泛型方法时,类型推断 (type inference) 过程将尝试为该调用推断类型实参。类型推断的存在允许使用更方便的语法调用泛型方法,并使得程序员不必指定多余的类型信息。例如,给定下面的方法声明:class Chooser{ static Random rand = new Random(); public static T Choose(T f原创 2009-12-30 09:34:00 · 512 阅读 · 0 评论 -
this 访问
C# 3.0 this 访问this-access 由保留字 this 组成。this-access:thisthis-access 只能在实例构造函数、实例方法或实例访问器的 block 中使用。它具有下列含义之一: · 当 this 在类的实例构造函数内的 primary-expression 中使用时,它属于值类别。此时,该值的类型是使用 this 的原创 2009-12-29 16:03:00 · 428 阅读 · 0 评论 -
[C#]使用C#操作INI文件
源文地址:http://blog.sina.com.cn/s/blog_4a77f0630100e8p0.htmlnamespace System.Base{ /// ///操作INI文件类 /// /// public classiniFile { private string file转载 2010-03-12 15:18:00 · 414 阅读 · 0 评论 -
(T x) => y 匿名函数(lambda 表达式)
C# 编程指南匿名函数(C# 编程指南)<!-- Content type: Devdiv1. Transform: orcas2mtps.xslt. --> 更新:2007 年 11 月如其他地方所述,委托是一种包装方法调用的类型。就像类型一样,可以在方法之间传递委托实例,并且可以像方法一样调用委托实例。匿名函数是一个“内联”语句或表达式,原创 2009-12-29 15:41:00 · 593 阅读 · 0 评论 -
基类成员的访问限制
class A{ int x; static void F(B b) { b.x = 1; // Ok }}class B: A{ static void F(B b) { b.x = 1; // Error, x not accessible }} 类 B原创 2009-12-24 16:35:00 · 383 阅读 · 0 评论 -
C# 转义序列 Unicode 字符编码
转义序列 字符名称 Unicode 编码 / 单引号 0x0027 /" 双引号 0x0022 // 反斜杠 0x005C /0 Null 0x0000 /a 警报 0x0007 /b 4. Backs原创 2009-12-24 12:55:00 · 1287 阅读 · 1 评论 -
类间的关系
来自:http://www.cnblogs.com/floodpeak/archive/2008/02/27/1083533.html网上关于此类的讨论非常多,发现对于该问题的理解各有各的说法,而各个说法中又相去甚远。通过浏览这些讨论以及对《OReilly - UML 2.0 In A Nutshell (2007)》的参考,发表一下自己的看法类间关系有很多种,在大的类别上可以分为两种:纵向转载 2009-12-25 09:08:00 · 480 阅读 · 0 评论 -
C# 可访问性约束
C# 语言中的有些构造要求某个类型至少与某个成员或其他类型具有同样的可访问性 (at least as accessible as)。如果 T 的可访问域是 M 可访问域的超集,我们就说类型 T 至少与成员或类型 M 具有同样的可访问性。换言之,如果 T 在可访问 M 的所有上下文中都是可访问的,则 T 至少与 M 具有同样的可访问性。存在下列可访问性约束:· 类类型的直接原创 2009-12-24 20:21:00 · 447 阅读 · 0 评论 -
实例成员的受保护访问
public class A{ protected int x; static void F(A a, B b) { a.x = 1; // Ok b.x = 1; // Ok }}public class B: A{ static void F(A a, B b) {原创 2009-12-24 17:19:00 · 399 阅读 · 0 评论 -
yield(C# 参考)
C# 语言参考yield(C# 参考) 在迭代器块中用于向枚举数对象提供值或发出迭代结束信号。它的形式为下列之一:复制代码 yield return ;yield break; 备注 计算表达式并以枚举数对象值的形式返回;expression 必须可以隐式转换为迭代器的 yield 类型。yield 语句只能原创 2009-12-30 09:49:00 · 424 阅读 · 0 评论 -
迭代器&使用迭代器(C# 编程指南)
C# 编程指南迭代器(C# 编程指南) 迭代器是 C# 2.0 中的新功能。迭代器是方法、get 访问器或运算符,它使您能够在类或结构中支持 foreach 迭代,而不必实现整个 IEnumerable 接口。您只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,它将自动生成 IEnumerable 或 IEnumerable 接口的 Current、M原创 2009-12-30 09:53:00 · 799 阅读 · 0 评论 -
修改.NET程序或DLL的几种方法
http://hi.baidu.com/expertsearch/blog/item/3763489498ffe9027bf48092.html本文目的是回答一个朋友关于修改程序集的留言,都是比较简单的修改方式,不涉及脱壳等。1: 利用ILASM和ILDASM我们先建立如下测试程序:namespace Test{class Program{stat转载 2012-04-26 14:05:51 · 16184 阅读 · 2 评论 -
C#中获取程序当前路径 (转)
//获取当前进程的完整路径,包含文件名(进程名)。string str = this.GetType().Assembly.Location;result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。string str = System.转载 2012-03-16 16:29:47 · 612 阅读 · 0 评论 -
获取枚举描述信息(Description)
获取枚举描述信息(Description)看到别人的enum都有一个获取枚举描述信息(Description),直接给自己的加上,发现not work。网上找了找,原来要这个样子加的:1。定义enumusing System;using System.ComponentModel; public enum TimeOfDay {转载 2010-05-25 11:36:00 · 10681 阅读 · 1 评论 -
Vs自动查找命名空间
你如果不知道某个类属于哪里,你可以在那个类上面点[右键],然后点“转到定义”这样一步步你就能知道所有类、方法、成员属性都是在哪里定义的了。或者将光标移到该类之上,会出现一个带色的小框,点这个上框就能找到其命名空间了。 resolve原创 2010-04-15 16:50:00 · 2753 阅读 · 0 评论 -
抽象类与接口
一个类只通继承自一个类,可以实现多个接口。抽象类可以定义实现代码,接口不能。接口的多态性、类型转换 is,as 与类一致。抽象类(abstract class)abstract classFruit //抽象类{ publicabstract void GrowInArea(); //抽象方法}接口public interfa原创 2010-04-15 14:55:00 · 382 阅读 · 0 评论 -
C#中问号(?)的用法
看别人的代码,C#中有个奇怪的问号:public DateTime? StatusDateTime = null;脑子便也出现个问号,这是什么意思呢?网上搜下,总结如下:1. 可空类型修饰符(?): 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。 例如:string str=null; 是正确的,int原创 2010-04-15 13:36:00 · 1167 阅读 · 0 评论 -
C# 数据类型转换
Cast 隐式数据类型转换内存中的数据没有变化。只有在内存存储中存在交集的才能进行数据转换。Convert显式数据类弄转换数据意义上的转换。是一个加工改造的过程。原创 2010-04-15 11:53:00 · 486 阅读 · 0 评论 -
var(C# 参考)
var(C# 参考)<!-- Content type: Devdiv1. Transform: orcas2mtps.xslt. --> 在方法范围中声明的变量可以具有隐式类型 var。隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。下面的两个 i 声明在功能上是等效的: var i = 10; //转载 2009-12-30 23:40:00 · 818 阅读 · 0 评论 -
C# 实现和调用自定义扩展方法
C# 编程指南如何:实现和调用自定义扩展方法 更新:2007 年 11 月本主题演示如何为 .NET Framework 类库中的任何类型或您想要扩展的任何其他 .NET 类型实现您自己的扩展方法。客户端代码可通过以下方式使用您的扩展方法:添加对包含这些扩展方法的 DLL 的引用,并且添加一条 using 指令以指定在其中定义这些扩展方法的转载 2009-12-30 15:07:00 · 2372 阅读 · 0 评论 -
C#Using用法
引用地址:http://www.cnblogs.com/heyaowen163/articles/1177909.html C#关键字的用法不单只有一种方法的。现在我总结了一下Using和New的用法,顺便巩固下自己的知识。 Using (1)引用命名空间 using作为引入命名空间指令的用法规则为: using Namespace; 在.NET程序中,最常见的原创 2009-12-24 13:09:00 · 400 阅读 · 0 评论 -
委托
委托类型 (delegate type) 表示对具有特定参数列表和返回类型的方法的引用。通过委托,我们能够将方法作为实体赋值给变量和作为参数传递。委托类似于在其他某些语言中的函数指针的概念,但是与函数指针不同,委托是面向对象的,并且是类型安全的。 下面的示例声明并使用一个名为 Function 的委托类型。 using System; delegate double Function(double原创 2009-12-24 13:08:00 · 386 阅读 · 0 评论 -
在UltraEdit的查找和替换中使用正则表达式 (转)
很多朋友都用过或者正在用UltraEdit,这个编辑器陪伴我也好几年了,从很多地方影响着我写代码的快捷键习惯,Ultraedit提供了非常丰富的编辑功能,其中非常重要的查找和替换功能一定大家都用过,Ultraedit提供的查找替换功能非常方便和强大,可以在单独文件里面查找替换,也可以在多个文件、多个目录里面进行查找替换。而我们在使用这些查找替换功能的时候,一般都是针对某个字符串进行,前两天我要对一转载 2008-12-09 17:19:00 · 785 阅读 · 0 评论 -
一个C#写的调用外部进程类
作者:肖波 C# 调用外部进程的类,网上可以搜出很多来,为什么要再写一遍,实在是因为最近从网上拷贝了一个简单的例程用到项目中,运行有问题,后来研究了半天,才解决了这些问题。于是打算写这么一篇博文,一来说说调用一个外部进程这么简单的一件事究竟会有哪些问题,二来也希望我写的这个相对比较完整的类可以为软件开发的同道们节约一些脑细胞,以便集中优势兵力解决那些真正高深复杂的软件问题。 在开始正题转载 2008-12-08 14:20:00 · 853 阅读 · 0 评论 -
C#多线程学习(五) 多线程的自动管理(定时器)
Timer类:设置一个定时器,定时执行用户指定的函数。 定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。初始化一个Timer对象: Timer timer = new Timer(timerDelegate, s,1000, 1000); // 第一个参数:指定了TimerCallback 委托,表示要执行的方法;// 第二个参数:一个包含回调方法要使用的信转载 2008-12-08 13:48:00 · 516 阅读 · 0 评论 -
C#多线程学习(四) 多线程的自动管理(线程池)
在多线程的程序中,经常会出现两种情况:一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应 这一般使用ThreadPool(线程池)来解决;另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒 这一般使用Timer(定时器)来解决;ThreadPool类提供一个由系统维护的转载 2008-12-08 13:36:00 · 416 阅读 · 0 评论 -
C#多线程学习(二) 如何操纵一个线程
下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。(线程入口使程序知道该让这个线程干什么事)在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。 打开你的V转载 2008-12-08 13:14:00 · 395 阅读 · 0 评论 -
C#多线程学习(一) 多线程的相关概念
什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程转载 2008-12-08 11:55:00 · 563 阅读 · 0 评论 -
关于反射Assembly.Load("程序集").CreateInstance("命名空间.类")
而不管在哪一层写这段代码其中的("程序集")读取的实际是web层bin文件夹下的dll,也就是说你反射的类的程序集dll在web层的bin下必须有晕了这个东西调了一天 Assembly.Load("程序集名")Assembly.LoadFrom("程序集实际路径")原创 2009-02-11 14:53:00 · 547 阅读 · 0 评论 -
C#中操作xml文件(插入节点、修改、删除)
已知有一个XML文件(bookstore.xml)如下: Oberons Legacy Corets, Eva 5.95 1、往节点中插入一个节点: XmlDocument xmlDoc=new Xm转载 2008-11-27 10:11:00 · 549 阅读 · 0 评论 -
不要拼接Sql,而要使用参数的好处之2
在实际开发中,经常会需要对数据库进行访问,最常见的开发方法就类似:string sql = "select * from table1 where name = " + name + "";这种方式有被注入攻击的危险(什么是注入,搜索一下吧,太多了)所以解决方案有2种:1、改成:string sql = "select * from table1 where name = "转载 2008-11-20 12:24:00 · 877 阅读 · 0 评论 -
使用StringBuilder, StringBuilder和String的区别
使用 StringBuilder 语言 C# String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 Sy转载 2008-12-10 11:36:00 · 367 阅读 · 0 评论 -
总结C#中得到程序当前工作目录和执行目录的一些方法
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 获取模块的完整路径。2. System.Environment.CurrentDirectory 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。3. System.IO.Directory.GetCurrentDirectory(转载 2008-12-11 18:00:00 · 394 阅读 · 0 评论 -
Static 静态类和静态类成员
静态类和静态类成员(C# 编程指南) 静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。原创 2010-02-24 10:51:00 · 557 阅读 · 0 评论 -
9.3 Extern 别名
extern-alias-directives:extern-alias-directiveextern-alias-directives extern-alias-directiveextern-alias-directive:extern alias identifier ;extern-alias-directive 的范围扩展到直接包含它的编译单元或原创 2010-01-16 18:14:00 · 1007 阅读 · 0 评论 -
8.13 using 语句
using 语句获取一个或多个资源,执行一个语句,然后释放该资源。using-statement:using ( resource-acquisition ) embedded-statementresource-acquisition:local-variable-declarationexpressionusing 语句转换为三部分:获取、使用和释放转载 2010-01-16 16:57:00 · 386 阅读 · 0 评论 -
lock 语句
1.1 lock 语句lock 语句用于获取某个给定对象的互斥锁,执行一个语句,然后释放该锁。lock-statement:lock ( expression ) embedded-statementlock 语句的表达式必须表示一个已知的 reference-type 类型的值。永远不会为 lock 语句中的表达式执行隐式装箱转换(第 6.1.7 节),因此,转载 2010-01-16 16:37:00 · 532 阅读 · 0 评论 -
Interface定义及使用
接口定义以大写字母I开头。方法只定义其名称,在C#中,方法默认是公有方法;用public修饰方法是不允许的,否则会出现编译错误;接口可以从别的接口继承,如果是继承多个接口,则父接口列表用逗号间隔。 接口可以通过类来实现,当类的基列表同时包含基类和接口时,列表中首先出现的是基类;类必须要实现其抽象方法; 接口使用:见代码(转) interface使用转载 2008-12-23 15:38:00 · 1433 阅读 · 0 评论 -
C#路径/文件/目录/I/O常见操作汇总
文件操作是程序中非常基础和重要的内容,而路径、文件、目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供给你一点有益的思路,如果你有好的建议,恳请能够留言,使这些内容更加完善。 主要内容:一、路径的相关操作, 如判断路径是否合法,路径类型,路径的特定部分,合并路径,系统文件夹路径等内容转载 2008-12-17 16:49:00 · 716 阅读 · 0 评论