2014年3月7日

C# abstract virtual interface的区别(付static、override用法)

摘要: 1.Virtua:当一个方法被声明为Virtual时,它是一个虚拟方法,直到你使用ClassNamevariable=newClassName();声明一个类的实例之前,它都不存在于真实的内存空间中。这个关键字在类的继承中非常常用,用来提供类方法的多态性支持。virtual关键字代表虚拟的,虚的,修饰的是方法。修饰方法的时候:这个时候叫做虚方法,虚方法代表这个方法是虚的,这个方法可能没有实现,这个方法可以被重写。关键的一句话是:这个方法可以被重写。这代表,如果这个方法想要被重写,被override,那么它就必须是一个虚方法,因为abstract修饰的方法是隐式的虚方法,所以abstract和v 阅读全文

posted @ 2014-03-07 09:56 ZorroBubble 阅读(244) 评论(0) 推荐(0) 编辑

2013年11月27日

C# abstract抽象类的作用(使用场景)

摘要: 对于C#初学者来说,abstract抽象类在网上的定义和解释说了一大堆,却往往我们忽视了为何要使用abstract类,使用它的意义在哪里。面试的时候也会有人问起使用它有什么好处,因为不适用它用自己定义的类也可以实现。那么为什么要使用抽象类?那么我们什么时候应该用抽象类呢?如果一个类设计的目点是用来被其它类继承的,它代表一类对象的所具有的公共属性或方法,那个这个类就应该设置为抽象类。抽象类与其它的类有什么区别呢?抽象类是不能够被实例化的。如果一个类中包含有抽象方法,那么这个类一定要声明为抽象类。同时,抽象方法一定需要在子类中重写,让抽象方法成为一个具体的实实在在的方法。相信大家在网上一定看过很多 阅读全文

posted @ 2013-11-27 23:17 ZorroBubble 阅读(1133) 评论(0) 推荐(1) 编辑

2013年10月5日

面向对象 封装、继承、多态

摘要: 首先我要说的是,封装、继承、多态并不是针对C#语言提出来的,他是一个在面向对象思想下产生的一个概念。所以想要弄明白封装、继承、多态,首先就要先了解面向对象概念。 1.封装:当我们提及面向对象的时候,这个对象怎么来?就是通过我们人为的封装得来。封装就是把一些特征或功能组合到一个抽象的对象上。 就比如说电脑:它的特征是有一个显示屏,有一个主机,有鼠标和键盘等等。功能有计算等。那我们把这些特征和功能组合到“电脑”这个 抽象的名词上时,“电脑”于是就有了这些特征和功能。但这个“电脑”不是实物,它代表所有名叫“电脑”的实物的名称。在C#中, 我们把封装好的抽象的名词叫"class", 阅读全文

posted @ 2013-10-05 23:14 ZorroBubble 阅读(207) 评论(0) 推荐(0) 编辑

堆和栈的区别(heap & Stack)

摘要: 理解堆与栈对于理解.NET中的内存管理、垃圾回收、错误和异常、调试与日志有很大的帮助。垃圾回收的机制使程序员从复杂的内存管理中解脱出来,虽然绝大多数的C#程序并不需要程序员手动管理内存,但这并不代表程序员就无需了解分配的对象是如何被回收的,在一些特殊的场合仍需要程序员手动进行内存管理。在32位的处理器上,每个进程的虚拟内存为4GB,.NET会在这4GB的内存块中开辟出3块内存,分别作为栈、托管堆、和非托管堆堆(heap):堆是从下往上分配,所以已用的空间在自由空间下面,C#中所有引用类型的对象分配在托管堆上,托管堆在内存上是连续分配的,并且内存对象的释放受垃圾收集机制的管理,效率相对于栈来说要 阅读全文

posted @ 2013-10-05 22:07 ZorroBubble 阅读(176) 评论(0) 推荐(0) 编辑

C#核心概念 装箱与拆箱(boing & unboxing)

摘要: C#的装箱、拆箱概念经常理解不透,特意找了文章总结一下,希望对大家学习有帮助,感谢前辈们的总结文章:C#核心概念--装箱和拆箱(什么是装箱和拆箱)装箱(boxing)和拆箱(unboxing)是C#类型系统的核心概念.是不同于C与C++的新概念!,通过装箱和拆箱操作,能够在值类型和引用类型中架起一做桥梁.换言之,可以轻松的实现值类型与引用类型的互相转换,装箱和拆箱能够统一考察系统,任何类型的值最终都可以按照对象进行处理. C#语言中的所有类型都是由基类System.Object继承过来的,包括最常用的基础类型:int, byte, short,bool等等,就是说所有的事物都是对象。如果申明这 阅读全文

posted @ 2013-10-05 21:40 ZorroBubble 阅读(194) 评论(0) 推荐(0) 编辑

2013年7月11日

C# 解决datatable想删除不想要的多行方法

摘要: 最近做东西,用到需要把一个datatbale的数据分为符合的和不符合的数据,但是一旦删除某一行索引值就会发生改变,如果用循环去remove的话就会出现删除数据有误了,改用datatable.Rows[i].Delete()可解决问题。下面为代码示例: for (int i = 0; i 73.27112)&&(latY>17.714548&&latY<52.971885))){history.Rows.Remove(history.Rows[i]);i--;//删除之后原来索引为i+1处的行索引会因为删去一行而变为i,i--确保此条数据不被漏掉}}. 阅读全文

posted @ 2013-07-11 13:22 ZorroBubble 阅读(2837) 评论(0) 推荐(1) 编辑

2013年6月24日

SQL存储过程rollback tran的使用

摘要: 存储过程中使用事务转自:http://www.cnblogs.com/RascallySnake/archive/2010/05/17/1737298.html(学习备忘之用)一、存储过程中使用事务的简单语法 在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式: Create Procedure MyProcedure ( @Param1 nvarchar(10), @param2 nvarchar(10) ) AS Begin ... 阅读全文

posted @ 2013-06-24 11:49 ZorroBubble 阅读(2794) 评论(0) 推荐(0) 编辑

winform textbox文本框设置多行输入小技巧总结

摘要: 对于我们经常要对文本框进行多行输入后进行查询、插入、删除、更新操作等,要很方便的从其他诸如Excel中进行复制粘贴的数据来说,textbox文本框必须设置为多行属性:Multiline 属性设置为True,其次对字符串进行一下处理:string Ocno=this.txt_OCNO.Text.Trim(); string strValue = this.txt_Barcode.Text;//设置文本框的内容 string shopNoValue = this.CB_ShopNo.Text; if (Ocno == "" && s... 阅读全文

posted @ 2013-06-24 10:02 ZorroBubble 阅读(2115) 评论(0) 推荐(0) 编辑

2013年6月20日

winform textbox.text设置换行技巧备忘

摘要: 在winform中如果将textbox为多行时multiline=true时,要想使文本在指定的字符后面进行换行只用"\n"是行不通的,需要用"\r\n"代码简单示例如下:this.txt_Diary.Text = "反结清成功:" + "\r\n" +" "+ str_codeList + "\r\n" + "共:" + str_arrValue.Length.ToString() + "条数据反结清成功"; 阅读全文

posted @ 2013-06-20 16:23 ZorroBubble 阅读(630) 评论(0) 推荐(0) 编辑

2013年6月13日

SQL触发器基础

摘要: SQL触发器作者:hoojo出处:http://www.cnblogs.com/hoojo/archive/2011/07/20/2111316.htmlblog:http://blog.csdn.net/IBM_hoojo收藏做学习备忘之用,感谢原文博主触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。 Ø 什么是触发器 触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表 阅读全文

posted @ 2013-06-13 22:02 ZorroBubble 阅读(274) 评论(0) 推荐(0) 编辑

导航