摘要: 多态是面向对象编程的一个重要应用。 c#多态有两种:方法重载,编译时多态;类型继承,运行时多态。 方法重载:在调用一个方法时,如果此方法有多个重载,编译器会根据出入参数的类型和个数来自动的判断调用一个具体的方法实现。 运行时多态:利用基类的虚方法,在子类中不同的实现,通过调用基类的虚方法来达到不同的实现。 定义一个Animal class ,有一个虚方法 eat(); 定义一个 monkey class ,继承自 Animal ,重写猴子类型的eat(), console.write("我喜欢吃香蕉!"); 定义一个 pig class,继承自Animal,重写猪类型的ea 阅读全文
posted @ 2014-01-08 16:27 高宝建 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 系统日志可以帮助我们分析操作系统的安全与否,也可以帮助我们将一些不好调试的信息显示出来。 C#操作系统日志主要是通过EventLog类来实现的。一 图解 打开事件查看器,其中与EventLog类对应的元素可以在下图二 写日志 设置EventLog的Log属性就可以将日志分到不同的类别中。 System.Diagnostics.EventLog eventLog = new System.Diagnostics.EventLog("LogName")或者 EventLog e = new EventLog(); e.Log = "LogName"; 这两个 阅读全文
posted @ 2013-11-20 17:28 高宝建 阅读(7061) 评论(0) 推荐(1) 编辑
摘要: 此博客用于在开发过程总bug及其解决方案的记录。 1。异常信息: ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。错误分析:出现这种异常,就是在ef操作的过程中,有两个对象的主键相同了。网上有跳过这种检查的办法,但是这不是解决异常的根本 ,我们需要对代码进行分析。错误代码:在foreach 里面循环生成可能是一个父对象的语句造成了此异常,从红色部分可以看出在循环中可能生成多个对象。 foreach (var l in changedContentList) { ... 阅读全文
posted @ 2013-09-30 10:26 高宝建 阅读(751) 评论(0) 推荐(0) 编辑
摘要: 使用C#的时候我们最熟悉的是类,也就是Reference Type,翻译成中文是引用类型。但是C#还有另外的一种类型往往被我们用的最多缺经常被忽视,这种类型就是值类型(Value Type)。 值类型的构造器(Constructor)不同于引用类型的Constructor。在C#中值类型不允许无参数的Constructor,但是在CLR中是没有这个限制的,请看下面的代码:struct Point{ public int x; public int y;public Point() { m_x = m_y = 5; }} 编译此代码会提示错误信息:结构不能包含显式的无参... 阅读全文
posted @ 2013-09-23 01:19 高宝建 阅读(940) 评论(2) 推荐(1) 编辑
摘要: 在做网站管理后台的用户修改功能时,由于当前用户修改个人信息时规定用户名不能修改,故使用了input标签的disabled属性,但是在提交数据后却发现用户名显示为空了。后来一查才知道input设置为disabled值时会有下面的限制:1、不能接收焦点;2、使用tab键时将被跳过;3、可能不是successful的。解决方法是:可以使用readonly=”readonly”属性代替即可,而input设置为readonly属性也有一些限制:1、可以接收焦点,但不能被修改;2、可以使用tab键进行导航;3、可能是successful的。因为只有successful的表单元素才是有效的数据,也就是可以进 阅读全文
posted @ 2013-07-03 15:34 高宝建 阅读(723) 评论(0) 推荐(0) 编辑
摘要: 一般人们分析问题,总是从问题现象,原因分析,解决方案这样的思路来分析思考问题,我想对这个数据库的水平拆分也按这样的思路来简单剖析一下。 先从问题现象入手,随着数据库表中数据日积月累越来越多,当表记录数达到千万甚至亿级别时,数据库表的访问效率下降明显,导致外层应用的访问效率非常差,访问时间急剧上升,用户体验下降。如果是表数据太大的原因导致访问速度变慢,一般情况下当访问与此表相关业务时速度会很慢,而访问与此表无关的业务时速度会很快。 分析上面的问题现象,明显的一个原因是因为某些表的数据记录太多的原因,导致数据库访问效率下降造成的。 既然是某些表数据记录太多的原因,那我们的解决办法当然是... 阅读全文
posted @ 2013-07-03 10:21 高宝建 阅读(5670) 评论(0) 推荐(0) 编辑
摘要: 系统整体架构:公司在US东海岸和西海岸均有一个服务器集群,每个集群大概有20多台高性能服务器。 1)当客户访问时,有一个统一的第三方硬件分配系统,将访问分别导向最近的集群之上进行访问。毕竟光纤中的信号也是需要时间进行传输的,而且如此也是可以对整体系统的安全性上进行备份并在访问压力上进行流量分流。 2)当导到最近的集群后,又有一第三方负载均衡系统将访问分别导向到集群中不同的服务器上进行访问。 同时服务器也会进行更进一步的细分:(1)Web浏览服务器;(2)订单服务器;(3)SQL Server服务器其中(1)和(2)的大致分别设置为4:1,因为在每天的访问客户中,大概只有1/4或1/5的客户下订 阅读全文
posted @ 2013-07-03 10:04 高宝建 阅读(1330) 评论(1) 推荐(0) 编辑
摘要: input 在IE中有onchange事件,但是这个事件所表现的效果不是我们想要的,它所表现的效果为:当input内的内容发现更改时,并不会触发你所指定的方法(函数),所以一般的人不用使用这个事件,而会使用,onpropertychange 这个事件,,在IE下是可行的。。但是在FF下面呢就不行了。。于是我从网上找到如下代码去解决FF下不行jQuery(function($) { if (navigator.userAgent.indexOf("MSIE") > 0) { document.getElementById('txtABC').attach 阅读全文
posted @ 2013-07-03 09:47 高宝建 阅读(28794) 评论(1) 推荐(0) 编辑
摘要: 问题描述:在最近的windows程序中,由于实现了winform程序点击窗口的关闭按钮,不直接退出程序,而是将程序最小化到托盘中,这样当程序没有退出之前,直接关机会导致关机不能正常进行。 问题原因:操作系统会在用户点击关机后,发送一个关闭的消息到当前运行的应用程序,这个消息的ID号问0x11,这样当应用程序接受到消息后就会关闭自身,然后操作系统就可正常关闭了。但是我们在实现了上面的功能后,会在FormClosing事件中添加一段代码, e.Cancel = true; //最小化到托盘 NormalToMinimized(); 这样我们虽然实现了功能,但是在接受到操作系统发送来的关... 阅读全文
posted @ 2012-12-12 11:44 高宝建 阅读(2384) 评论(8) 推荐(0) 编辑
摘要: 本文描述如何重新加载整个PartialView。 Controller: public class HomeController : Controller { public static int i = 0; /// <summary> ///这个数组是超过来的,懒的改了。 /// </summary> public static string[] quotes = { "The first 90% of the code accounts for the first 90% of the deve... 阅读全文
posted @ 2012-12-04 14:39 高宝建 阅读(9351) 评论(0) 推荐(0) 编辑