
c#
一片
这个作者很懒,什么都没留下…
展开
-
C# 特性(Attribute)详细介绍
1、什么是Atrribute 首先,我们肯定Attribute是一个类,下面是msdn文档对它的描述:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes,它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。...转载 2019-03-01 17:05:48 · 7031 阅读 · 0 评论 -
C#委托的介绍(delegate、Action、Func、predicate)
C#委托的介绍(delegate、Action、Func、predicate) 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。事件是一种特殊的委托。 1.委托的声明 (1). delegate delegate我们常用到的一种声明 Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型。转载 2014-04-16 01:46:13 · 885 阅读 · 0 评论 -
c# 中内部类的简单介绍
最近在看java一方面的书籍,看到一个很奇怪的问题,java类中还可以再定义一个类,这种结构非常特殊!后来才发现我知识浅薄了,原来C#中也有内部类,之前都一直没有注意过这个语法结构!使用内部类有这样几个好处: (1)抽象外部类的某一状态下的行为,隐藏实现,通过修改该内的访问修饰符,可以设置仅有外部类可以访问该类(2)扩展了命名空间,可以将外部类的类名作为内部类的一个命名空间转载 2014-03-29 08:49:18 · 3506 阅读 · 2 评论 -
System.Func<>与System.Action<>
使用并行编程可以同时操作多个委托,在介绍并行编程前先简单介绍一下两个泛型委托System.Func。Funcpublic delegate TResult Func()public delegate TResult Func(T1 arg1)public delegate TResult Func(T1 arg1,T2 arg2)public delegate TResul转载 2014-03-28 07:17:18 · 1166 阅读 · 0 评论 -
探索C++的秘密之详解extern "C"
时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段转载 2014-02-24 03:06:34 · 618 阅读 · 0 评论 -
C#中双问号(??)在检测Null方面的带来的方便
C#中双问号(??)在检测Null方面的带来的方便最近接到一个维护项目,发现里面超多BUG,基本都是NullReferenceException突然想起C#中有个双问号(??)的单元运算符,用于解决这个问题实在是方便的很。 首先,既然双问号(??)是一个单元运算符,那么其左右两边数据类型必须是相同类型或能隐形转换类型的。它表示的意思是,首先检测左边的值,若其为Null,转载 2014-01-28 06:45:39 · 1535 阅读 · 0 评论 -
C#和C++结构体Socket通信
最近在用C#做一个项目的时候,Socket发送消息的时候遇到了服务端需要接收C++结构体的二进制数据流,这个时候就需要用C#仿照C++的结构体做出一个结构来,然后将其转换成二进制流进行发送,之后将响应消息的二进制数据流转换成C#结构。 1、仿照C++结构体写出C#的结构来 Code1using System.Runtime.InteropServices;23 [Ser转载 2014-01-06 03:02:33 · 1705 阅读 · 0 评论 -
C#和C++结构体Socket通信 2
最近由于项目原因,与合作方进行socket通信,由于合作方用的是C#,发现以前屡试不爽的C++进程间用的数据结构套接字通信遇到了问题:数据错位字符串无效long类型出错一顿搜索,发现了原因出自C#与C++的区别:C/C++ C# 长度short short转载 2014-01-06 08:56:58 · 1140 阅读 · 0 评论 -
判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
在编程的时候,经常遇到要判断一个字符串中的字符是否全部是数字(0-9),本来是一个很容易实现的功能,但程序员首先会想到的是,这样简单的功能有没有现成的函数可以用呢?VB.NET中有个IsNumeric(object),C#中只有判断单个字符的Char.IsNumber(),IsNumeric可以判断double类型的数字字符串,但无法排除正负号和小数点,如果判断字符串是否是一个数的话用它挺合适,但转载 2013-12-06 02:59:49 · 8182 阅读 · 0 评论 -
[C#]泛型与非泛型集合类的区别及使用例程
今天有空正好把泛型和非泛型集合类写了一个比较,并做了个的例程,可以比较清楚的理解它们概念和使用方法。泛型与非泛型集合类在C#程序中是非常重要的一个基础概念,这里列一个表来进行对比: 非泛型集合类泛型集合类描述ArrayListList表示具有动态大小的对象数组Ha转载 2013-11-04 13:15:17 · 2076 阅读 · 0 评论 -
C#深度拷贝(Deep Copy)
C#深度拷贝(Deep Copy)Hashtable和ArrayList等经常需要深度拷贝,而.Net没有现成的函数可以调用,我从国外找了一个方法 public object Clone() { BinaryFormatter Formatter = new BinaryFormatter(null, new Streaming转载 2013-09-27 05:12:59 · 3074 阅读 · 0 评论 -
struct 如何判断是否为空??????????
值类型原本是不能为null的,但如果确实有需要,可以使用可空类型。用法如下:1,定义结构体StructA;2,声明可空类型:StructA? mSA=null;注意问号“?”的用法转载 2013-10-11 02:07:21 · 16335 阅读 · 0 评论 -
C#委托
委托的定义与方法的定义类似,只是返回值类型的前面多了个delegate。如:public delegate void PrientDelegate(string content),其实委托就是一个能够将方法封装成一个引用类型,能和普通对象一样传递。一、委托的声明有几点要注意的, 1、和类一样,委托的声明可以再类的外部声明,委托也可以再类的内部声明。 2、委托的声明虽然形转载 2014-04-04 05:41:55 · 652 阅读 · 0 评论 -
C#泛型详解
我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并代码了吗?泛型的出现就是专门解决这个问题的。读完本篇文章,你会对泛型有更深的了解。为什么要使用泛型为了了解这个问题,我们先看转载 2014-04-23 08:31:18 · 564 阅读 · 0 评论 -
Attribute在.NET编程中的应用(三)
用于参数的Attribute在编写多层应用程序的时候,你是否为每次要写大量类似的数据访问代码而感到枯燥无味?比如我们需要编写调用存储过程的代码,或者编写T_SQL代码,这些代码往往需要传递各种参数,有的参数个数比较多,一不小心还容易写错。有没有一种一劳永逸的方法?当然,你可以使用MS的Data Access Application Block,也可以使用自己编写的Block。这里向你提供一转载 2015-08-21 07:42:48 · 358 阅读 · 0 评论 -
Attribute在.net编程中的应用(二)
Attribute在.net编程中的应用(二).NET Framework中对Attribute的支持是一个全新的功能,这种支持来自它的Attribute类。在你的程序中适当地使用这个类,或者是灵活巧妙地利用这个类,将使你的程序获得某种在以往编程中很难做到的能力。我们来看一个例子:假如你是一个项目开发小组中的成员,你想要跟踪项目代码检查的信息,通常你可以把代码的检查信息保存转载 2015-08-21 07:41:52 · 602 阅读 · 1 评论 -
Attribute在.NET编程中的应用(四)
Attribute在.NET编程中的应用(四)SqlCommandGenerator类的设计SqlCommandGEnerator类的设计思路就是通过反射得到方法的参数,使用被SqlCommandParameterAttribute标记的参数来装配一个Command实例。 引用的命名空间://SqlCommandGenerator.csusing System;转载 2015-08-21 07:43:29 · 413 阅读 · 0 评论 -
Attribute在.NET编程中的应用(五)
Attribute在.NET编程中的应用(五)Attribute在拦截机制上的应用从这一节开始我们讨论Attribute的高级应用,为此我准备了一个实际的例子:我们有一个订单处理系统,当一份订单提交的时候,系统检查库存,如果库存存量满足订单的数量,系统记录订单处理记录,然后更新库存,如果库存存量低于订单的数量,系统做相应的记录,同时向库存管理员发送邮件。为了方便演示,我们对转载 2015-08-21 07:44:30 · 442 阅读 · 0 评论 -
Attribute在.net编程中的应用(一)
Attribute在.net编程中的应用(一)Attribute的基本概念经常有朋友问,Attribute是什么?它有什么用?好像没有这个东东程序也能运行。实际上在.Net中,Attribute是一个非常重要的组成部分,为了帮助大家理解和掌握Attribute,以及它的使用方法,特地收集了几个Attribute使用的例子,提供给大家参考。在具体的演示之前,我想先大致介绍一下转载 2015-08-21 07:41:07 · 453 阅读 · 0 评论 -
C# interface学习经验浅谈
C# interface学习是我们学习C#语言的一个重点,那么如何掌握好C# interface的使用规则呢?那么本文就向你介绍一些C# interface学习的经验和体会。AD:51CTO开启企业运维技术盛宴_嘀嘀、新浪、白鹭齐聚MDSA线下沙龙,赶紧报名吧!C# interface是把所需成员组合起来,以封装一定功能的集合。它好比一个模板,在其中定义了对转载 2015-08-19 06:49:07 · 1874 阅读 · 0 评论 -
【C#基础】Parallel的使用
随着多核时代的到来,并行开发越来越展示出它的强大威力,像我们这样的码农再也不用过多的关注底层线程的实现和手工控制,要了解并行开发,需要先了解下两个概念:“硬件线程”和“软件线程”。 1. 硬件线程 相信大家手头的电脑都是双核以上的,像我这样古董的电脑都是双核的,这样的双核叫做物理内核。 硬件线程又叫做逻辑内核,我们可以在”任务管理器“中转载 2015-05-24 01:33:53 · 4734 阅读 · 0 评论 -
C# Socket连接请求超时机制
转自:http://www.cnblogs.com/weidagang2046/archive/2009/02/07/1385977.html作者:RazanPaul译者:Todd Wei原文:http://www.codeproject.com/KB/IP/TimeOutSocket.aspx介绍您可能注意到了,.Net的System.Net.Sockets.TcpClien转载 2015-01-05 14:33:42 · 6630 阅读 · 0 评论 -
取消匿名委托
privatevoid Form1_Load(objectsender, EventArgs e){ this.button1.Click += delegate(objecta, EventArgs b) { MessageBox.Show("Test!"); };}转载 2014-07-23 04:42:00 · 864 阅读 · 0 评论 -
C#的委托 Action<>和Func<>
其实他们两个都是委托【代理】的简写形式。一、【actionDelegate的代码:[csharp] public delegate void myDelegate(string str); public static void HellowChinese(string strChinese) { Console.WriteLine("转载 2014-06-07 02:42:33 · 590 阅读 · 0 评论 -
.NET System.Timers.Timer的原理和使用(开发定时执行程序)
概述(来自MSDN)Timer 组件是基于服务器的计时器,它使您能够指定在应用程序中引发 Elapsed 事件的周期性间隔。然后可以操控此事件以提供定期处理。例如,假设您有一台关键性服务器,必须每周 7 天、每天 24 小时都保持运行。可以创建一个使用 Timer 的服务,以定期检查服务器并确保系统开启并在运行。如果系统不响应,则该服务可以尝试重新启动服务器或通知管理员。基于服务器转载 2014-05-21 02:36:20 · 4175 阅读 · 0 评论 -
C#中String转换为sbyte*的方法
前两天用C++做了一个dll, 其中一个函数有一个char*型的能数,在C#调用中提示,参数类型应为sbyte*类型。 用如下方法得到了解决: Recog.CRecog c = new Recog.CRecog(); //Recog是我在dll中的类 string s="h://1.txt"; sbyte[] sbArray = (sbyte[])((Array)System.Text.Encod转载 2013-09-23 12:36:12 · 9525 阅读 · 1 评论 -
各种C#数组的定义和初始化
数组是具有相同数据类型的项的有序集合。要访问数组中的某个项,需要同时使用数组名称及该项与数组起点之间的偏移量。在 C# 中,声明和使用C#数组的方法与 Java 有一些重要区别。一维数组一维数组以线性方式存储固定数目的项,只需一个索引值即可标识任意一个项。在 C# 中,数组声明中的方括号必须跟在数据类型后面,且不能放在变量名称之后,而这在 Java 中是允许的。因此,类型为 int转载 2013-09-19 06:44:55 · 18348 阅读 · 0 评论 -
HashTable和HashSet中的类型陷阱
发现这个陷阱的起因是这样的:我现在有上百万字符串,我准备用TopK算法统计出出现次数做多的前100个字符串。首先我用Hashtable统计出了每个字符串出现的次数,然后我突然发现需要用一个字典把这些字符串中无用的词过滤掉,所以我又定义了一个HashSet作为统计字典。我最初的代码如下: 1 Stopwatch st = new Stopwatch();/转载 2013-10-01 08:40:31 · 974 阅读 · 0 评论 -
[C#基础知识]之.netframerwork中的事件
我们一直所认为的事件就是点击按钮,然后就会触发我们在处理程序里面的代码。那么这一切到底是怎么发生的呢?我们能不能定义我们的自己的事件引起对象或者逻辑。当然可以,我们先来看看现实世界中的事件。比如老师上课的时候提出一个问题,其实就是一个事件,事件的发起方就是老师,而接受方就是回答问题的学生。事件数据就是老师的问题。所谓的时间数据就是我们可以从老师的问题中得到的信息。而到程序中呢,我们就以点击按钮为例转载 2013-07-01 12:21:11 · 941 阅读 · 0 评论 -
[C#基础知识]之 .net中的泛型全面解析
从2.0起我们一直就在谈论泛型,那么什么是泛型,泛型有什么好处,与泛型相关的概念又该怎么使用,比如泛型方法,泛型委托。这一篇我会全面的介绍泛型。 那么首先我们必须搞清楚什么是泛型,泛型其实也是一种类型,跟我们使用的int,string一样都是.net的类型。泛型其实就是一个模板类型,万能类型。它允许我们在设计类的时候使用一个类型空白。预留一个类型。等到我们使用这个类的时候,我们可以使用特转载 2013-07-01 12:12:06 · 2149 阅读 · 1 评论 -
C#中HashTable的用法
一 , 哈希表 (Hashtable) 简述 在 .NET Framework 中, Hashtable 是 System.Collections 命名空间提供的一个容 器,用于处理和表现类似 keyvalue 的键值对,其中 key 通常可用来快速查找,同时 key 是区分大小写; value 用于存储对应于 key 的值。 Hashtable 中 keyvalue键值转载 2013-06-30 08:43:18 · 622 阅读 · 0 评论 -
[c#基础知识] C# 集合类 :(Array、 Arraylist、List、Hashtable、Dictionary、Stack、Queue)
我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类。我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和拆箱的负担,14:31:45,例如我们需要在电子商务网站中存储用户的购物车信息(商品名,对应的商品个数)时,完全可以用 Dictionary<string, int> 来存储购物车信息,而不需要任转载 2013-07-15 09:08:57 · 780 阅读 · 0 评论 -
[c#基础知识]浅谈Hashtable与Dictionary的异同
以前对于这两个集合类的认识只是停留在是否支持泛型上,这几天趁着看算法导论的机会,把两个类的内部的实现机制好好的了解了一下。Hashtable和Dictionary从数据结构上来说都属于Hashtable,都是对关键字(键值)进行散列操作,将关键字散列到Hashtable的某一个槽位中去,不同的是处理碰撞的方法。散列函数有可能将不同的关键字散列到Hashtable中的同一个槽中去,这个时候我转载 2013-07-15 00:19:36 · 793 阅读 · 0 评论 -
[c#基础教程]C#泛型列表List<T>基本用法总结
示例代码如下:namespace SampleListT{ class Programa { static void Main(string[] args) { //using System.Collections.Generic; 命名空间中的List //using System.Collect转载 2013-07-14 16:40:04 · 910 阅读 · 0 评论 -
[C#基础教程]C# 泛型Dictionary 之一(Hashtable)使用说明
# 泛型Dictionary (Hashtable)using System;using System.Collections.Generic;public class Example{ public static void Main() { //创建泛型哈希表,然后加入元素 Dictionary oscar =转载 2013-07-14 14:25:38 · 907 阅读 · 0 评论 -
[C#基础教程]C# 泛型Dictionary 之二(Hashtable)使用说明
泛型最常见的用途是泛型集合,命名空间System.Collections.Generic 中包含了一些基于泛型的集合类,使用泛型集合类可以提供更高的类型安全性,还有更高的性能,避免了非泛型集合的重复的装箱和拆箱。 很多非泛型集合类都有对应的泛型集合类,下面是常用的非泛型集合类以及对应的泛型集合类:非泛型集合类泛型集合类ArrayListList转载 2013-07-14 14:29:43 · 1158 阅读 · 0 评论 -
[C#基础教程]C#泛型集合—Dictionary<K,V>使用技巧
1、要使用Dictionary集合,需要导入C#泛型命名空间 System.Collections.Generic(程序集:mscorlib) 2、描述 1)、从一组键(Key)到一组值(Value)的映射,每一个添加项都是由一个值及其相关连的键组成 2)、任何键都必须是唯一的 3)、键不能为空引用null(VB中的Nothing),若值为引用类转载 2013-07-13 16:08:03 · 1332 阅读 · 0 评论 -
[C#基础知识]HashMap与Hashtable的区别
HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。 1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。2.Has转载 2013-07-13 05:59:29 · 2223 阅读 · 0 评论 -
[C#基础知识]泛型Dictionary<string,string>的用法详解
泛型最常见的用途是泛型集合,命名空间System.Collections.Generic 中包含了一些基于泛型的集合类,使用泛型集合类可以提供更高的类型安全性,还有更高的性能,避免了非泛型集合的重复的装箱和拆箱。 很多非泛型集合类都有对应的泛型集合类,下面是常用的非泛型集合类以及对应的泛型集合类:非泛型集合类泛型集合类ArrayListLi转载 2013-07-13 07:09:17 · 14146 阅读 · 0 评论 -
[C#基础知识]之private、protected、public和internal的区别
private、protected、public和internal的区别private是完全私有的,只有在类自己里面可以调用,在类的外部和子类都不能调用,子类也不能继承父类的private的属性和方法。protected虽然可以被外界看到,但外界却不能调用,只有自己及自己的子类可以调用(protected的属性和方法都可以被子类所继承和调用)。private和pro转载 2013-07-01 12:34:08 · 10190 阅读 · 0 评论