代码改变世界

.NET中公共变量与属性的区别

2013-08-22 10:50 by 地图315, 403 阅读, 0 推荐, 收藏, 编辑
摘要:在我们的程序中经常会出现以下的代码: 如: 成员变量 public string Name; 或者用属性 private string name public string Name() { get {return name;} set { name = value;} }当然,如果属性中get{} 和 set{}的方法不是这么简单或两个不同时出现的话,我们很容易区分出两者的区别。但就像上面这样的代码到底两者有什么不一样呢?对其它对象来说,这两者都是同样的访问,同样的赋值。只不过一个是变量,一个是属性而已。经过本人一段时间的理解,大概总结如下... 阅读全文

abstract class 与interface

2013-08-22 10:46 by 地图315, 194 阅读, 0 推荐, 收藏, 编辑
摘要:一.抽象类(absteact class)特点:1.抽象方法只作说明,而不包含实现,可以看成是没有实现体的虚方法2.抽象类不能被实例化。除此之外,具有类的其他特性3.抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类4.具体派生类必须覆盖基类的抽象方法5.抽象类可以派生自另一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖他们二.接口(interface)特点1.不能被实例化2.只能包含实现的方法声明3.成员可以包含方法、属性、索引器和事件4.接口中不能包含常量、字段、构造函数和静态成员5.接口中的所有成员默认为public 阅读全文

sealed、new、virtual、abstract与override 总结

2013-08-22 10:35 by 地图315, 168 阅读, 0 推荐, 收藏, 编辑
摘要:1. sealed——“断子绝孙”密封类不能被继承。密封方法可以重写基类中的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed修饰符必须始终与override一起使用。即:密封类不会有子类,所以是“断子绝孙”。2. new——“你是我的,我是我的”new关键字用于显式隐藏从基类继承的成员。也就是在使用派生类时调用的方式方法是new关键字新定义出来的方法,而不是基类的方法。在不使用new修饰符的情况下隐藏成员是允许的,但会生成警告。使用new显式隐藏成员会取消此警告,并使用派生类新定义的方法。即:好比是不用祖宗的东西,而是用自己创造(new)的东西。3. virtua 阅读全文

const和readonly区别

2013-08-22 10:34 by 地图315, 141 阅读, 0 推荐, 收藏, 编辑
摘要:我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等。在多数情况下可以混用。二者本质的区别在于,const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定其值。而static readonly是在运行时计算出其值的,所以还可以通过静态构造函数来赋值。明白了这个本质区别,我们就不难看出下面的语句中static readonly和const能否互换了:1. static readonly MyClass myins = new MyClass();2. static readonly MyClass myins = null;3. 阅读全文

对比C#中==与equal方法

2013-08-22 10:29 by 地图315, 281 阅读, 0 推荐, 收藏, 编辑
摘要:C#中equal与==的区别 收藏对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。==操作比较的是两个变量的值是否相等。equals()方法比较的是两个对象的内容是否一致.==也就是比较引用类型是否是对同一个对象的引用。例子:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Conso 阅读全文

我心目中的Asp.net核心对象

2013-08-21 13:33 by 地图315, 144 阅读, 0 推荐, 收藏, 编辑
摘要:想当初在只使用WebForms框架并以服务端为中心的开发模式时,发现Asp.net好复杂。一大堆服务端控件,各有各的使用方法, 有些控件的事件也很重要,必须在合适地时机去响应,还真有些复杂。后来逐渐发现这些复杂的根源其实就是服务器控件相关的抽象逻辑。 随着Ajax越用越多,可能有些人也做过这些事情:【新建一个ashx文件,读取一些用户的输入数据,Form, QueryString, 然后调用业务逻辑代码,将处理后的结果序列化成JSON字符串再发给客户端】,这样也能完成一次请求。 不知大家有没有做过这类事情,反正我是做过的。慢慢地,我也嫌烦了,这些事情中除了调用业务逻辑部分, 都是些体力活嘛。于 阅读全文

看懂SqlServer查询计划

2013-08-21 13:11 by 地图315, 145 阅读, 0 推荐, 收藏, 编辑
摘要:对于SQL Server的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题, 因此本文只谈优化查询时如何看懂SQL Server查询计划。毕竟我对SQL Server的认识有限,如有错误,也恳请您在发现后及时批评指正。首先,打开【SQL Server Management Studio】,输入一个查询语句看看SQL Server是如何显示查询计划的吧。说明:本文所演示的数据库,是我为一个演示程序专用准备的数据库,可以在此网页中下载。select v.OrderID, v.CustomerID, v.CustomerName, v.OrderDate, v 阅读全文

使用Areas分离ASP.NET MVC项目

2013-08-16 15:43 by 地图315, 276 阅读, 0 推荐, 收藏, 编辑
摘要:为什么需要分离?我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等。但是在实际的开发中,随着项目规模的不断扩大,Controller控制器也随之不断增多。如果在Controllers文件夹下面有超过两位数controller,即便采用良好的命名规范,或者用子文件夹的形式区分不同功能的控制器,还是会影响项目的可阅读性和可维护性。因此,在一些场景下,如果能把与某功能相关的文件分离到一个独立的项目中是非常有用的。Asp.Net MVC提供了Areas(区域)的概念达到这一目的。一个 阅读全文

将json转化为model

2013-08-16 13:52 by 地图315, 263 阅读, 0 推荐, 收藏, 编辑
摘要:/// /// 获取Json的Model /// /// /// /// public static T ParseFromJson(string szJson) { T obj = Activator.CreateInstance(); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson))) { ... 阅读全文

简单的三层asp.net webForm使用Ninject实现Ioc

2013-08-16 13:15 by 地图315, 260 阅读, 0 推荐, 收藏, 编辑
摘要:在asp.net webform下使用Ninject的简单过程。首先建立个项目,如下图,简单三层(PS:UI层要同时引用BLL、Model、DAL这三层)写好代码Model:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Model{ public class UserInfo { public int UserID { get; set; } public string UserName { get; set; } ... 阅读全文
上一页 1 ··· 5 6 7 8 9 10 11 12 下一页