C#
文章平均质量分 53
小文_panda
无
展开
-
进程与线程
进程是操作系统的一次执行活动,原创 2014-09-24 09:12:41 · 417 阅读 · 0 评论 -
设计模式的一句话总结
设计模式一句话总结以GoF的经典教材为例,一句话总结个人的理解。OO回顾四大概念抽象:抽象为了简化问题,简单即美,相信我,人类很笨继承:为了便于扩展或改写原有的功能多态:为了便于改写原有的功能封装:组件化,便于理解、替换与复用,因此系统会更加灵活(后文提到封装XXX时,就不具体说这些优点了)类关系依赖:非常弱的关系,A中用过B即为A依赖B继承:子类实转载 2014-10-30 22:06:38 · 409 阅读 · 0 评论 -
CLR的string的一些简单理解
string和String,string就是别名了,System.String才那个真是的类原创 2014-10-30 23:38:30 · 1331 阅读 · 0 评论 -
短弱引用和长弱引用
可创建短弱引用或长弱引用:Short垃圾回收功能回收对象后,短弱引用的目标会变为 null。 弱引用本身是托管对象,和任何其他托管对象一样需要经过垃圾回收。短弱引用是 WeakReference 的默认构造函数。Long调用对象的 Finalize 方法后,会保留长弱引用。 这样,您就可以重新创建该对象,但该对象仍保持不可预知的状态。 要使用长引用,请在 WeakReference原创 2014-11-01 19:16:51 · 623 阅读 · 0 评论 -
可空类型
使用可以为 null 的类型(C# 编程指南)Visual Studio 2013其他版本此主题尚未评级 - 评价此主题可以为 null 的类型可以表示基础类型的所有值,另外还可以表示 null 值。 可以为 null 的类型可通过下面两种方式中的一种声明:System.Nullable varia转载 2014-10-17 21:05:39 · 416 阅读 · 0 评论 -
扑克排序的两个问题
public class Poker { public int Number { get; set; } public int Suit { get; set; } public string PokerString { get; set; } public int TransferSuit(char a)原创 2014-10-18 19:36:39 · 650 阅读 · 0 评论 -
理解执行计划
阅读目录开始SQL Server 查找记录的方法SQL Server Join 方式更具体执行过程索引统计信息:查询计划的选择依据优化视图查询推荐阅读-MSDN文章对于SQL Server的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题, 因此本文只谈优化查询时如何看懂SQL Server查询计划。毕竟我对SQL Server的认识转载 2014-10-19 12:56:35 · 611 阅读 · 0 评论 -
IDisposable接口与垃圾回收
using System;using System.ComponentModel;using System.Runtime.InteropServices;public class ConsoleMonitor : IDisposable{ const int STD_INPUT_HANDLE = -10; const int STD_OUTPUT_HANDLE = -11;原创 2014-10-19 18:18:23 · 450 阅读 · 0 评论 -
CLI、CTS、CLS
本文将介绍以下内容:.NET 基础架构概念 类型基础通用类型系统CLI、CTS、CLS的关系简述 1. 引言 本文不是连环画,之所以在开篇以图形的形式来展示本文主题,其实就是想更加特别的强调这几个概念的重要性和关注度,同时希望从剖析其关系和联系的角度来讲述.NET Framework背后的故事。因为,在作者看来想要深入的了解.NET,必须首转载 2014-10-18 20:11:16 · 567 阅读 · 0 评论 -
.NET探索系列
http://kb.cnblogs.com/page/54931/转载 2014-10-20 20:50:53 · 332 阅读 · 0 评论 -
.NET的代码访问安全(CAS)机制
转载自:.NET Framework中一个比较难懂的部分是CAS,很多开发人员都对此不甚了了。很多次在讲课中提到这些内容,大家的反应也不一。下面这个图很好地说明了CAS是如何工作的?下面略微地对其进行讲解首先,CLR会在运行程序集之前,收集该程序集所携带的证据(Evidence),这个证据其实就好比是我们的身份证的概念。不过,程序集的证据有很多种类型,例如它所运行的转载 2014-10-20 19:54:14 · 743 阅读 · 0 评论 -
C#经典笔试题
http://wenku.baidu.com/link?url=orWhoht3MdfO2_na0svIxcrXNVBgjHcYogF1khSaLppI00gGR8Ex3SvEVGaq2ravrfAmAvxryIUtRnaPGAZ73KgqkW2k8liwviukAzsKD17原创 2014-10-20 21:00:49 · 373 阅读 · 0 评论 -
强命名程序集和部署到GAC
如何创建强命名程序集(Strong Name Assembly) 创建一个强命名程序集首先需要获得一个用强命名实用工具 (Strong Name Utility,即SN.exe,.NET SDK自带)产生的密钥。 下面简要介绍一下SN.exe的一些用法。 要产生一个公钥/私钥对: a)SN –k MyCompany.Keys 该命名告诉SN.原创 2014-10-20 19:39:38 · 423 阅读 · 0 评论 -
泛型约束
where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。1.接口约束。例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就可以实现 IComparable 接口:复制代码代码如下:public class MyGenericClass where T:IComparable { }2.基类约束:指出某个类型原创 2014-10-21 20:31:10 · 443 阅读 · 0 评论 -
cache paramters
aching ExpirationMicrosoft Caching Application Block provides great use of the caching expiration functionality. For that, we need to add the namespace below: Collapse | Copy Codeusing Mic转载 2015-02-11 14:03:54 · 523 阅读 · 0 评论 -
结构化异常
try,catch,finallycatch中的代码是对异常的恢复操作。比如有状态的恢复,原创 2014-10-31 00:14:15 · 460 阅读 · 0 评论 -
静态构造的学习
类的静态构造函数,也就是对静态字段初始化用的,原创 2014-10-30 23:49:08 · 435 阅读 · 0 评论 -
关于lock和monitor
调用Start()之后,它的Threadstate变成Running如果想让它阻塞,调用sleep()方法,threadstate变成waitesleepjoin此外这个线程如果调用了其他对象的wait或者join也会使自身的threadstate变成waitsleepjoin处于waitesleepjoin的状态如果想唤醒它,可使用interrupt方法,将在线程中引发threadi原创 2014-09-26 10:53:38 · 700 阅读 · 0 评论 -
最简单的概念程序集和模块
模块是 .dll 或 .exe 类型的可移植可执行文件,这些文件由一个或多个类和接口组成。单个模块可包含多个命名空间,而一个命名空间可跨越多个模块。作为一个单元部署的一个或多个模块组成程序集。转载 2014-09-26 16:16:31 · 705 阅读 · 0 评论 -
C# 基础知识问答(一)
1.静态变量与非静态变量的区别静态变量在类jinz原创 2014-09-25 12:04:14 · 619 阅读 · 0 评论 -
内存泄露
内存泄露是指由于疏忽或者错误造成程序未能释放已经不再使用原创 2014-09-25 20:30:38 · 388 阅读 · 0 评论 -
前台线程与后台线程的选择
.NET Framework 中的所有线程都被指定为前台线程或后台线程。这两种线程唯一的区别是 — 后台线程不会阻止进程终止。在属于一个进程的所有前台线程终止之后,公共语言运行库 (CLR) 就会结束进程,从而终止仍在运行的任何后台线程。在大多数应用程序中,您会选择将不同的线程设置成前台线程或后台线程。通常,应该将被动侦听活动的线程设置为后台线程,而将负责发送数据的线程设置为前台线程,转载 2014-09-25 13:52:35 · 538 阅读 · 0 评论 -
线程几个方法及线程池的使用
join:阻塞调用线程,执行自己,执行完毕回到主线程。一般使用原创 2014-09-25 18:00:37 · 528 阅读 · 0 评论 -
单例与static函数
单例的懒汉式和饿汉式转载 2014-09-25 08:19:14 · 630 阅读 · 1 评论 -
序列化与反序列化
序列化是将对象处理为字节流以存储对象或传输到内存、数据库或文件。 其主要目的是保存对象的状态,以便可以在需要时重新创建对象。 相反的过程称为反序列化。原创 2014-09-27 09:44:40 · 418 阅读 · 0 评论 -
C#我不知道的事
1.命名空间是起什么作用的?和程序集之间的关系原创 2014-10-21 20:43:32 · 404 阅读 · 0 评论 -
AutoResetEvent与ManualResetEvent的区别
AutoResetEvent 允许线程通过发信号互相通信。 通常,当线程需要独占访问资源时使用该类。原创 2014-09-28 20:19:35 · 502 阅读 · 0 评论 -
异步操作四大方法
http://support2.microsoft.com/kb/315582/zh-cn1.直接endinbo原创 2014-09-28 22:10:23 · 398 阅读 · 0 评论 -
接口的隐式和显示实现
接口的实现分为:隐式实现和显式实现。隐式接口实现:如果类或者结构要实现的是单个接口,可以使用隐式实现。显式接口实现:如果类或者结构继承了多个接口,那么接口中相同名称成员就要显式实现。显示实现是通过使用接口的完全限定名来实现接口成员的。 使用显式接口成员执行体通常有两个目的:1、因为显式接口成员执行体不能通过类的实例进行访问,这就可以从公有接口中把接口的实现部转载 2014-10-10 19:49:47 · 778 阅读 · 0 评论 -
值类型与引用类型区别and装箱与拆箱
1.引用类型在托管堆上分配的原创 2014-10-12 15:19:17 · 496 阅读 · 0 评论 -
委托和事件的区别
这块真是难啃的骨头啊,我总是想知道什么时候该用委托,什么时候该用事件,在写程序的时候原创 2014-10-30 23:14:16 · 540 阅读 · 0 评论 -
CLR的垃圾回收总结
垃圾回收的本质是,跟踪托管堆中被引用的对象,回收没有被引用的对象。原创 2014-10-30 22:13:43 · 977 阅读 · 0 评论 -
ThreadPool的浅研究
线程的开销1.线程有其自己的数据结构,创建一个线程需要存储空间2.操作系统要调度线程,当线程切换(Context Switch)时3.线程执行完任务后要销毁,释放其所占用的资源,同样影响性能基于上述创建线程可能带来的问题,这就是为什么需要线程池了每个CLR有一个线程池,CLR的所有AppDomain共享一个线程池,CLR初始化时线程池是没有线程的,当线程池收到请求时,线程池试图原创 2015-03-05 12:59:32 · 564 阅读 · 0 评论