摘要:
一叶障目.NET平台上的分层架构(很多朋友称其为“三层架构”),似乎是一个长盛不衰的话题。经常看到许多朋友对其进行分析、探讨、辩论甚至是抨击。笔者在仔细阅读了大量这方面文章后,认为许多朋友在分层架构的理解上存在两个比较大的偏颇:1.没有从本质角度去理解分层的内涵,而只是了解其表象。2.对分层架构的理解过于狭隘,只是少数概念,而又不够深入。许多朋友言“分层”则必称“DAL”、“BLL”、“表示层”等概念,殊不知“DAL”的内部还有“Data Source 架构模式”、“Object-Relational Behavioral 模式”、“Object-Relational Structural 模 阅读全文
摘要:
http://www.cnblogs.com/xugang/archive/2011/01/06/1927619.html声明纠结地说,这应该算是一篇关于Attribute 的笔记,其中的一些思路和代码借鉴了他人的文笔(见本文底部链接)。但是,由于此文对Attribute 的讲解实在是叫好(自夸一下 ^_^),所以公之于众,希望能对大家有所帮助。Attribute与Property 的翻译区别Attribute 一般译作“特性”,Property 仍然译为“属性”。Attribute 是什么Attribute 是一种可由用户自由定义的修饰符(Modifier),可以用来修饰各种需要被修饰的目标 阅读全文
摘要:
翻译不是为了翻译,是为了学习!因为只有翻译我才能逐句的看完整篇文章。当然还可以得到各位达人的斧正,让我由懂得皮毛到渐入佳境!乐哉,幸哉!原文约定: 1.”attribute”和”attributes”均不翻译 2.”property”译为“属性” 3.msdn中的原句不翻译 4.”program entity”译为”语言元素”Attributes in C#介绍Attributes是一种新的描述信息,我们既可以使用attributes来定义设计期信息(例如 帮助文件,文档的URL),还可以用attributes定义运行时信息(例如,使XML中的元素与类的成员字段关联起来)。我们也可以用attr 阅读全文
摘要:
1、什么是Atrribute 首先,我们肯定Attribute是一个类,下面是msdn文档对它的描述: 公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。在.NET中,Attribute被用来处理多种问题,比如序列化、程序的安全特征、防止即时编译器对程序代码进行优化从而代码容易调试等等。下面,我们先来看几个在.NET中标准的属性的使用,稍后我们再回过头来讨 阅读全文
摘要:
属性是一种新的声明性信息.使用属性既可以定义设计级信息(例如一个帮助文件或一个文档链接)又可以定义运行时信息(例如使一个XML和一个类相关联).也可以使用属性创建"自描述"组件.通过此篇教程,我们将了解如何创建并附加属性到不同的程序实体,和在运行时如何找到属性信息.定义 MSDN的描述是属性是附加说明的信息,既一个声明的详细说明使用预定义属性 在C#里有一小部分预定义属性.在学习如何创建我们自定义属性前,我们先看看如何在我们的代码里使用那些属性. using System;public class AnyClass{ [Obsolete("Don't us 阅读全文
摘要:
摘要本文首先介绍AOP(面向方面编程)的相关概念及理论,然后介绍如何使用PostSharp框架在.NET平台上实现AOP,最后对PostSharp的机制及AOP的优劣进行一个简单的分析。AOP(Aspect-Oriented Programming)AOP的基本定义及作用根据维基百科的定义,“AOP(Aspect-Oriented Programming)是一种将函数的辅助性功能与业务逻辑相分离的编程泛型(programming paradigm),其目的是将横切关注点(cross-cutting concerns)分离出来,使得程序具有更高的模块化特性。AOP是面向方面软件开发(Aspect 阅读全文
摘要:
1.string 和 stringbuilder的区别string a="1"; //这一句是在内存中分配了一个空间,或者更专业的说法,是在堆中创建了一个a对象;a="2"; //这一句又在内存中分配了一个空间,或者更专业的说法,又在堆中创建了一个a对象; //原来的a对象作废(即没有指向),以后作为垃圾回收所以说频繁的操作string理论上来说是非常耗开销的!!而StringBuilde不存在这个问题,例如:StringBuilder a = "1"; //在堆中创建了一个对象a!!a = "2"; //继续使用 阅读全文
摘要:
通常讲的是针对方法或者函数,在函数执行过程中不会造成资源冲突就是线程安全的多个线程来调用也没事情,线程不安全就会造成数据错误或者崩溃啊啥的。线程安全: 在多线程中使用时,不用自已做同步处理.线程不安全: 在多线程中使用时, 必须做线程同步,不然会有未知后果.什么是线程安全? 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题 阅读全文
摘要:
一、预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)―,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字常量区 ―常量字符串就是放在 阅读全文
摘要:
intint -> System.Int32 (整型,占 4 字节,表示 32 位整数,范围 -2,147,483,648 到 2,147,483,647)1.string 和 stringbuilder的区别string a="1"; //这一句是在内存中分配了一个空间,或者更专业的说法,是在堆中... 阅读全文
摘要:
数据库中查找、删除重复的行2010-07-01 17:35查找所有重复标题的记录:SELECT *FROM t_info aWHERE ((SELECT COUNT(*)FROM t_infoWHERE Title = a.Title) > 1)ORDER BY Title DESC一。查找重复记录1。查找全部重复记录Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)2。过滤重复记录(只显示一条)Select * From HZT Where ID In (Select 阅读全文
摘要:
C#几种常用的排序算法:1 冒泡排序法1冒泡排序法#region冒泡排序法2publicvoidSort(int[]list)3{4longbegintime=System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond;5WriteLine(begintime);6intj,temp;7j=1;8while((j<list.Length))9{10for(inti=0;i<list.Length-j;i++)11{12if(list[i]<list[i+1])13{14temp=list[i];15list[ 阅读全文