随笔分类 -  c#基础

该文被密码保护。
posted @ 2012-08-30 11:25 勇气 阅读(2) 评论(0) 推荐(0)
摘要:我们知道事件必须带两个参数的,一个是object ,传递的一般是事件的发起者,即在镶嵌有时间占位符的类内部传递 this。另一个是一个 EventArgs 参数,我们可以定义自己的事件参数继承自 EventArgs 类,传递一些值从事件的发起者到事件的实现者。例子如下,比如自己设计一个Button类public class MyButton { public string caption="haha"; private string color = "red"; public event EventHandler OnClick; public void 阅读全文
posted @ 2011-12-22 10:38 勇气 阅读(381) 评论(1) 推荐(0)
摘要:事件简介: 任何进行过图形用户界面开发的编程人员都会知道事件的概念。当用户在使用程序的时候,用户必然要和程序进行一定的交互。比如当用户点击窗体上的一个按钮后,程序就会产生该按钮被点击的事件,并通过相应的事件处理函数来响应用户的操作。这样用户的直观感觉就是程序执行了我要求的任务了。当然,事件并不一定是在和用户交互的情况下才会产生的,系统的内部也会产生一些事件并请求处理的,比如时钟事件就是一个很好例子。不过要介绍C#中的事件处理机制(扩展到更广的范围便是整个.Net框架),我们首先得明白一个叫"委托"的概念。 C#中的委托: 委托,顾名思义,就是中间代理人的意思。C#中的委托允 阅读全文
posted @ 2011-12-01 16:58 勇气 阅读(1365) 评论(0) 推荐(0)
摘要:事件简介: 任何进行过图形用户界面开发的编程人员都会知道事件的概念。当用户在使用程序的时候,用户必然要和程序进行一定的交互。比如当用户点击窗体上的一个按钮后,程序就会产生该按钮被点击的事件,并通过相应的事件处理函数来响应用户的操作。这样用户的直观感觉就是程序执行了我要求的任务了。当然,事件并不一定是在和用户交互的情况下才会产生的,系统的内部也会产生一些事件并请求处理的,比如时钟事件就是一个很好例子。不过要介绍C#中的事件处理机制(扩展到更广的范围便是整个.Net框架),我们首先得明白一个叫"委托"的概念。 C#中的委托: 委托,顾名思义,就是中间代理人的意思。C#中的委托允 阅读全文
posted @ 2011-12-01 16:57 勇气 阅读(234) 评论(0) 推荐(0)
摘要:C# IList ,ArrayList,list的区别与联系Arrary数组Arrarylist集合List<T>泛型集合 阅读全文
posted @ 2011-11-23 11:48 勇气 阅读(349) 评论(0) 推荐(0)
摘要:共同点:IList, List , ArrayList 通俗一点来讲就是广义的数组,C#里面称之为集合。不同于一般的狭义的数组,它们可以存放任意类型的东西,在申明或者赋值的时候指定。比如你写了一个类 Cake,然后想有一个结构来存放很多Cake的实例,那就可以用他们。区别:IList与List 通俗一点讲,只能存放同一类型的元素。比如声明的时候 声明为List<Cake> cakes=new List<Cake>(); 那么就只能用放cake的实例。在从cakes这个变量中取出元素的时候,取到的直接就是Cake类型。不需要做强行的转换。如果想要让一个‘数组’存放各种类型 阅读全文
posted @ 2011-11-23 11:09 勇气 阅读(1519) 评论(0) 推荐(0)
摘要:<appSettings> <add key="Domain" value=""/> </appSettings> <connectionStrings> <add name="ConnStr" connectionString="Data Source=192.168.10.10;Initial Catalog=bjeis;User ID=sa;Password=SDlezfL2NGG2vBQ;Pooling=true;Max Pool Size=500;" 阅读全文
posted @ 2011-11-03 16:18 勇气 阅读(133) 评论(0) 推荐(0)
摘要:认识连接字符串在连接到数据库或者数据库文件的时候,程序需要调用AOD或者ADO.NET中的封装的数据提供程序,而连接字符串中包含了这些数据提供程序所需要的各种必要的信息。连接字符中包含的典型信息包括数据库的名称,服务器的位置和用户身份;他还可以指定其他更多的可操作信息,诸如连接超时和连接池设置。连接字符串使用一系列的键值对来存储信息,每个键值对用分号隔开。连接字符串的关键字ApplicationName:客户端应用程序的名称。Aync:启动异步操作支持。AttachDBFileName或Initial FileName:一个可连接的数据库文件使用的完整路径名。Connection Timeo. 阅读全文
posted @ 2011-11-03 16:12 勇气 阅读(2920) 评论(0) 推荐(0)
摘要:斐波那契数列:1,1,2,3,5,8,13,21…… 求第N项using System;namespace CSharpConsole{ class Program { public static int firstNum = 1; public static int secondNum = 1; static void Main(string[] args) { Console.WriteLine(GetFNum(4)); } public static int GetFNu... 阅读全文
posted @ 2011-11-03 12:27 勇气 阅读(176) 评论(0) 推荐(0)
摘要:转载 usingSystem;//我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并代码了吗?泛型的出现就是专门解决这个问题的。namespaceGeneric{classProgram{staticvoidMain(string[]args){//一个普通的类,只能传入int类型的参数。printp=newprint(5);//使用了泛型,只需要在<>中定义参数类型 阅读全文
posted @ 2011-04-22 15:28 勇气 阅读(1789) 评论(0) 推荐(0)
摘要:C#泛型编程 泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。例子代码:class Program { static void Main(string[] args) { int obj = 2; Test<int> test = new Test<int>(obj); Console.WriteLine("int:" + test.obj); string obj2 = "hello world"; Test<string> test1 = new Tes 阅读全文
posted @ 2011-04-22 15:27 勇气 阅读(4728) 评论(2) 推荐(2)
摘要:在一个序列中查找一个特殊的对象所需要的时间取决于容器中对象的数量。如果我们没有对容器中元素进行排序,那么随着元素数量的增加,你所需要的查找时间也就直线增加了:如果容器中元素的数量增加了一倍,那么你用来查找一个特殊元素的时间也就增加了一倍。然而,如果我们对容器中的元素进行了排序,那么查找时间就是随着元素数量的对数而增加的了:要使查找一个元素的时间增加一倍,你必须使集合中的元素数量增加四倍。如果你用一个key来搜索对象,你可以用比序列式容器更好的方法来存储你的对象。你可以用哈希表(hash table)。我觉得哈希表作用就是快速搜索对象。代码片断: Hashtable hashtable = ne 阅读全文
posted @ 2011-04-20 17:54 勇气 阅读(2116) 评论(0) 推荐(0)
摘要:构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,它通常初始化新对象的数据成员。在下面的示例中,定义了一个具有一个简单的构造函数,名为 Taxi 的类。然后使用 new 运算符来实例化该类。在为新对象分配内存之后,new 运算符立即调用 Taxi 构造函数。public class Taxi{ public bool isInitialized; public Taxi() //构造函数 与类同名,可重载 { //在类被实例化的时候自动调用 一般用于初始化 类的一些属性 isInitialized = true; }}class TestTaxi{ static voi 阅读全文
posted @ 2011-04-15 12:39 勇气 阅读(738) 评论(0) 推荐(0)
摘要:构造函数的作用及使用方法任何构造函数都可以进行配置,以便在执行自己的代码前调用其它构造函数。我们首先看看在创建类的实例时会发生什么情况。为了实例化派生的类,必须实例化它的基类。而要实例化这个基类,又必须实例化这个基类的基类,这样一直实例化到System.Object为止。结果是无论使用什么构造函数实例化一个类,总是要先调用System.Object.Object()。如果对一个类使用非默认的构造函数,默认的情况是在其基类上使用匹配于这个构造函数签名的构造函数。如果没有找到这样的构造函数,就使用基类的默认构造函数(根类System.Object总是要使用默认的构造函数,因为这个类没有非默认的构. 阅读全文
posted @ 2011-04-15 11:59 勇气 阅读(332) 评论(0) 推荐(0)