代码改变世界

随笔分类 -  .Net基础

简明添加log4net到项目中

2012-07-08 16:24 by JustRun, 601 阅读, 收藏,
摘要: 1. 非web项目中添加log4net添加log4net.dll引用到项目在配置文件中添加log4net的配置在项目的Assembly.cs文件中加上[assembly: log4net.Config.XmlConfigurator(Watch = true)]2. web网站中添加log4net前2个步骤和上面一样,不同的是需要在Global.asax中void Application_Start(object sender, EventArgs e) { // Code that runs on application startup log4net.Confi... 阅读全文

接口的显示实现和隐式实现

2012-06-30 23:02 by JustRun, 1214 阅读, 收藏,
摘要: 接口的实现,上学的时候就接触的概念了,现在毕业工作了,没想到自己有对接口的实现有了新的发现。基础的知识,总是在工作中不断的更新和理解的更加深刻。对于编程语言和平台中的高层建筑,总是会出现不断地变化,但是底层的基础却是一成不变的(变化很小). 所以我认为程序员应该把精力向这些基础的能力倾斜,修炼自己的内力,这样就能够在程序员这个岗位上做到做上一辈子,避开新生力量的竞争和体现自己的价值。以上是无关主题的废话, 下面是正文:一、显示实现和隐式实现。隐式实现:这是基本所有人都知道的实现方式目前常用的方式:public interface IReview{ void GetReviews();}p... 阅读全文

枚举类型转换成字符串

2012-06-22 23:27 by JustRun, 5348 阅读, 收藏,
摘要: 使用枚举类型默认的ToString()方法,往往不能得到我们想要的输出的字符串。如何方便的定义枚举类型中的每个值代表的字符串输出呢?可以使用DescriptionAttribute, 写上想得到的字符串输出。enum Direction{ [Description("Rover is facing to UP (Negtive Y)")] UP = 1, [Description("Rover is facing to DOWN (Positive Y)")] DOWN = 2, [Description("Rover is facing to 阅读全文

如何定义泛型是枚举类型

2012-06-22 22:59 by JustRun, 1966 阅读, 收藏,
摘要: 使用泛型,可以约束这个泛型继承自那个类或者借口。但是如果我们的泛型需要的是一个枚举类型的时候,应当如何定义呢?没有直接的实现方式,只能是用下面最接近的方式实现:where T : struct, IComparable, IConvertible, IFormattable 阅读全文

Math.Round和四舍五入

2012-06-14 21:33 by JustRun, 830 阅读, 收藏,
摘要: Math.Round方法并不是像想象中的四舍五入, 可以从下面的输出结果看出来:Math.Round(3.44, 1); //Returns 3.4.Math.Round(3.45, 1); //Returns 3.4.Math.Round(3.46, 1); //Returns 3.5.Math.Round默认实际的方式是“四舍六入法”。世界上的许多国家已广泛采用“四舍六入法”。我国国家科委于1955年就作了推荐。“四舍 六入法”可以概括为:“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一。想要达到我们平时使用的四舍五入,需要这样:Math.Round(3.4 阅读全文

关于DateTime和String转换的容易犯得错误

2012-06-08 07:59 by JustRun, 1240 阅读, 收藏,
摘要: 字符串转换成DateTime在开发中,常常会有DataTime类型和String类型的互相转换的要求,比较常用的写法是var date = Convert.ToDateTime("2012/06/08 09:10:10");咋一看这个代码好像没有什么问题, 实际运行也没发现问题。但是客户的机器上却是有转换的异常。后来经过调查发现,客户电脑上系统设置的CultureInfo是西班牙。这样代码会认为2012/06/08 09:10:10 不是一个合法的日期字符串。正确的写法应当是:var dtFormat = new DateTimeFormatInfo {LongDatePa 阅读全文

集合类接口IEnumerable,IEnumerator,ICollection,IList,IDictionary理解

2012-06-03 20:49 by JustRun, 828 阅读, 收藏,
摘要: IEnumerator该接口定义需要实现以下方法:Current:获取集合中的当前元素。MoveNext:将枚举数推进到集合的下一个元素。Reset: 将枚举数设置为其初始位置,该位置位于集合中第一个元素之前。实现以上方法的类也就意味着这个集合类能够被遍历访问。IEnumerableable意味着这个类能够达到上面IEnumerator的效果, 事实上也是如此,可以从这个接口定义方法中看出来:GetEnumerator: 返回一个IEnumerator类型的值IEnumerable是集合类的基础, 它解决了集合类如何遍历的问题, 所以更高级的集合类和接口都是继承IEnumerable所有能够使 阅读全文

.net中的对象序列化(2):三种序列化方式

2012-03-25 16:38 by JustRun, 2036 阅读, 收藏,
摘要: .Net框架中提供了3中序列化的方式, 分别是:Binary SerializerSoap SerializerXML Serializer1. Binary Serializer如果需要序列化这个类的对象,那么这个类必须要标记为是可序列化的。需要用到特性 [Serializable] (作用域是Class, Struct, Enum, Delegate)如果某些变量不需要序列化, 或者不能序列化可以使用[NonSerialized], (作用域是Field)需要注意, 如果类中使用了其它的类属性,如果希望它们能序列化,那么其它的类也必须是可序列化的, 如下面类DethDisease1name 阅读全文

.net中的对象序列化(1): 序列化是什么, 以及一个简单的例子

2012-03-24 15:57 by JustRun, 1214 阅读, 收藏,
摘要: 1. 为什么需要序列化,什么是序列化对于一个程序来说, 使用到的对象都是存在于内存中的。如果想保存这些对象的运行时状态, 或者需要在不同进程或者网络间传递对象,就需要序列化。序列化就是讲运行中的对象状态保存为二进制或者xml等格式,从而使得对象这种"虚"的东西能够变"实", 这样就可以把它们存储在硬盘的介质中,也可以用于网络传输。比较形象的例子是将活人冰冻起来,这个可以称为序列化, 等一天科技发达,能把这个冰冻人复活,恢复冰冻前一刻的状态,就是反序列化。计算机中用到的序列化例子有, Web service, 电脑的休眠等。2. 一个简单的例子这个例子中, 阅读全文

.Net中的Attribute

2012-03-19 22:32 by JustRun, 956 阅读, 收藏,
摘要: .Net中有Attribute和Property, 中文翻译都是属性,但是它们又非常不同。 常常把Attribute叫做特性以区分。Attribute的作用:Attribute类似于标签, 可以为类,方法,结构体,属性,委托等贴上标签,在以后的实际执行时候,根据不同的标签做不同的处理。Attribute的几个特点1. Attribute也是一个类2. Attribute类是在编译的时候被实例化的,而不是像通常的类那样在运行时候才实例化一个实际的例子, 通过Attribute控制类的行为。定义一个BlockAttribute, 指定的使用范围是类, 构造函数是一个枚举类型, 值是Yes, No. 阅读全文

编程新手学习测试题

2012-02-12 18:17 by JustRun, 527 阅读, 收藏,
摘要: 1. 输入任意一个整数a, 输出所有2个整数相乘的积为a的所有组合 2. 输入任意几个数, 将这些数按照从小到大排列输出 3. 先准备一个任意的纯文本文件,预先输入任意内容,编程实现输出, 文件的大小, 创建时间, 一共有多少字符, 有多少个字母, 多少个数字, 多少个符号, 多少个空格 4. 编程实现对一个大文件(大小超过100M)的重命名, 复制, 和删除 5. 一个用户做投资, 起始资金为money, 每年的投资收益率是b(0<b), 每年追加的钱为add, n年后的账户总额是多少?题目覆盖基本的语言语法, 排序, 文本文件读写, 文件操作, 递归. 阅读全文

我的开发工具箱

2012-02-12 13:53 by JustRun, 993 阅读, 收藏,
摘要: 以下是我开发中用到的一些非常好的辅助工具开发相关Sqldelta一个非常好用的数据库比较和同步工具。 支持sql server 和 Oracle. 官方网址是 http://www.sqldelta.com/Lumzy一款在线界面设计应用, 非常方便。官方网址是http://lumzy.com/Gliffy一款在线的图表绘制工具,可以用来代替Visiohttp://www.gliffy.comILSpyILSpy 是开源的.NET assembly 浏览和反编译工具http://wiki.sharpdevelop.net/ilspy.ashxResharpVS的插件,能够实时的检查代码规范,自 阅读全文