
C#知识
文章平均质量分 68
guoliwang
这个作者很懒,什么都没留下…
展开
-
C#中string和Object类型是引用传递
strign应该是引用传递 但是string又有值传递的效果,这是因为string是常量,不能更改,所以如果在函数里更改的话,其实是生成了另外一个string,但是原来的string还在,函数外的string还是原来的string。函数里的string指向另外一个新生成的string,给人一种值传递的假象 string a = "aaa"; //==> a----->new Str转载 2009-09-29 10:39:00 · 1364 阅读 · 2 评论 -
C# sealed修饰符
C# sealed修饰符表示密封用于类时,表示该类不能再被继承,不能和 abstract同时使用,因为这两个修饰符在含义上互相排斥用于方法和属性时,表示该方法或属性不能再被重写,必须和 override 关键字一起使用,因为使用C#sealed修饰符的方法或属性肯定是基类中相应的虚成员通常用于实现第三方类库时不想被客户端继承,或用于没有必要再继承的类以防止滥用继承造成层次结构体系混原创 2009-10-30 11:45:00 · 423 阅读 · 0 评论 -
c#中out和ref的使用区别
c#中out和ref的使用区别 ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。使用ref前必须对变量赋值,out不用。 out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。 如果你想返回多个值怎么办,OUT....原创 2009-10-30 12:37:00 · 384 阅读 · 0 评论 -
C#静态构造函数及静态变量
静态构造函数: (1)用于对静态字段、只读字段等的初始化。 (2)添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。 (3)类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数 (4)静态构造函数是不可继承的,而且不能被直接调用。原创 2009-10-30 13:29:00 · 562 阅读 · 0 评论 -
C#中的static,interface,virtual,abstract,override的用法
C# 是面向对象的程序设计语言,每一个函数都属于一个类。 Static:当一个方法被声明为Static时,这个方法是一个静态方法,编译器会在编译时保留这个方法的实现。也就是说,这个方法属于类,但是不属于任何成员,不管这个类的实例是否存在,它们都会存在。就像入口函数Staticvoid Main,因为它是静态函数,所以可以直接被调用。 Virtua:当一个方法被声明为Vi原创 2009-10-30 11:20:00 · 427 阅读 · 0 评论 -
C# 邮件发送(三种)
private bool SendMailTest() { bool blnFlag = false; /* * mail发送方法:不需指定用户名和密码 */ /* * 方法一原创 2009-10-30 14:29:00 · 579 阅读 · 0 评论 -
overload和override的区别
>>overload(通常被翻译为过载或重载) 一般语境里overload是对method(方法)而言的,可以指一个类中多个名字相同而参数类型列表不相同的方法,这个名字代表的方法就是被overload了的。编译器会根据参数类型列表的不同来决定调用叫这个名字的很多方法中具体的哪一个。 >>override(通常被翻译为覆盖) 一般语境里,如果说这个method(原创 2009-11-02 09:45:00 · 689 阅读 · 0 评论 -
C#中base和this关键字
base:用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数、实例方法和实例属性访问器中。MSDN中小结的具体功能包括: (1)调用基类上已被其他方法重写的方法。 (2)指定创建派生类实例时应调用的基类构造函数。base常用于,在派生类对象初始化时和基类进行通信。 base可以访问基类的公有成员和受保护成员,私有成员是不可访问的。在转载 2009-11-02 09:50:00 · 938 阅读 · 0 评论 -
WebBrowser使用
/// /// 打卡IE /// /// /// private void btnIe_Click(object sender, EventArgs e) { WebBrowser webBro = new WebBrowser();原创 2009-11-16 11:12:00 · 752 阅读 · 0 评论 -
c#传输文件
private void btnGetDBF_Click(object sender, EventArgs e) { this.rtbMsg.AppendText("正在获取DBF文件…" + "/r"); try { netStream = tcpClie转载 2009-11-18 13:58:00 · 2123 阅读 · 1 评论 -
Asp.net实用技巧新窗口中打开页面API
1.在新窗口中打开页面 我们经常需要在点击某个Button的时候打开一个新的页面,而且由于应用的需要,我们又不能使用超级连接或者LinkButton来代替这个Button,于是我们只有在Button的Click事件中进行新页面的打开工作。我将这个工作封装成一个API,如下: 1OpenWindowInNewPage#region OpenWindow转载 2009-11-19 15:27:00 · 1021 阅读 · 0 评论 -
Asp.Net实现在线人数统计
利用Application对象和Session对象可以统计当前在线用户数量.注意:(1)在会话开始和结束时,一定要进行加锁和解锁操作。由于多个用户可以共享Application对象,因此加锁是必要的,这样可以保证在同一时刻只有一个客户可以修改和存取Application对象的属性。如果加锁后,迟迟不给开锁,会导致用户无法访问Application对象。我们可以使用对象转载 2009-11-23 10:39:00 · 635 阅读 · 0 评论 -
Repeater嵌套的两种方案
在做“主页大巴”项目的时候,现有两次遇到要用到Repeater嵌套,但方法不同,如下:首先是各个科组教师的主页要分类显示,这个好办,因为用户都是按科组申请注册的,只要他的主页类别是个人主页,就可以做好父子绑定GroupID程序参考:http://support.microsoft.com/default.aspx?scid=kb;en-us;306154其二是转载 2009-11-23 15:07:00 · 646 阅读 · 0 评论 -
ASP.NET底层与各个组件的初步认识与理解 汇总
ASP.NET底层与各个组件的初步认识与理解 汇总 ASP.NET是一个非常强大的构建Web应用的平台,它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用,作为asp.Net程序员,应该更深了解一下其工作原理. 这段时间在国外国内的网进行查证与理解进行总结, 收集整理且当程序代码成长路上的回忆. 有部分是看了英文的大概意思,写下来的, 可能存在不合理转载 2009-11-24 14:05:00 · 389 阅读 · 0 评论 -
C# 委托的同步调用和异步调用
委托的Invoke方法用来进行同步调用。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。同步调用的例子:using System;using System.Threading;public delegate int AddHandler(int a, int b);public class Foo { static void Ma原创 2009-11-24 14:13:00 · 681 阅读 · 1 评论 -
C#中实现程序开机自启动
C#中实现程序开机自启动需求:公司话务系统,要求加上开机自启动功能实现:1、首先想到写注册表,关键代码如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1public void RunWhenStart(bool S转载 2010-02-21 20:25:00 · 2623 阅读 · 0 评论 -
C#中的const与static readonly区别
在许多教程中常看到列出了两者之间的区别 const (1)在编译期间解析常量 (2)必须在申明时就初始化 (3)即可用来修饰类中的成员,也可用来修饰函数中的局部变量 static readonly (1)在运行期间解析常量 (2)即可在申明时初始化,也可在构造器中初始化转载 2009-10-30 11:03:00 · 401 阅读 · 0 评论 -
C# 桌面截图代码
第一种: Bitmap desktopBmp = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height); using (Graphics gBmp = Graphics.FromImage(desktopBmp))原创 2009-10-28 16:21:00 · 1434 阅读 · 0 评论 -
交错数组 (齿轮数组、数组中的数组)
交错数组 string[][] parameter = new string[行数][]; //行数是固定的二维数组 string[n,m] parameter = new string[4,3];交错数组,也称锯齿形数组,是一种不规则的二维数组,它与矩形数组(二维数组)最大的差异,在于数组中每一行的长度并不相同,我们可以把它想象成有不同长度的一维数组组合而成的二维数组,所以交转载 2009-10-28 14:26:00 · 2196 阅读 · 0 评论 -
c#oracle连接
/// /// EflowOracleAccess /// public class EflowOracleAccess { /// /// コネクション /// private OracleConnection _oraConn = null; /原创 2009-09-30 09:24:00 · 507 阅读 · 1 评论 -
C#里类和结构的区别(详细)
1、结构是值类型,类则是引用类型。因此前者是放在栈(Stack)里,后者则仅仅是将引用地址存放在栈里,而具体的值则存放在堆(heap)里。 2、据第1点可以得出结论,那就是类对象通常用来传递大数据,而结构对象则用来传递小数据。3、类可以被继承,而结构则不支持。4、结构对象不能像类对象一样赋值为null。5、结构不能像类一样定义析构器。6、结构不能像类一样定义为抽象原创 2009-09-30 10:45:00 · 560 阅读 · 1 评论 -
partial使用
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Test{ /// /// partialTest1.cs /// partial class partialTest {原创 2009-09-30 11:04:00 · 362 阅读 · 0 评论 -
C#中的静态常量(const)和动态常量(static和readonly)用法和区别
C#拥有两种不同的常量:静态常量(compile-time constants)和动态常量(runtime constants)。它们有不同的特性,错误的使用不仅会损失效率,还可能造成错误。相比之下,静态常量在速度上会稍稍快一些,但是灵活性却比动态常量差很多。//静态常量(隐式是静态的) public const int compiletimeConsta转载 2009-09-30 09:07:00 · 1361 阅读 · 1 评论 -
枚举应用
/* 默认情况下,枚举中每个元素的基础类型是 int。可以使用冒号指定另一种整数值类型。 如果不为枚举数列表中的元素指定值,则它们的值将以 1 为增量自动递增。 */ public enum enumValueTest1 { Mondy = 1, //1原创 2009-09-29 09:29:00 · 393 阅读 · 0 评论 -
access数据库连接
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;"; strConnection += @"Data Source=E:/AccessTest/Data.mdb";//?里用的是??路径 OleDbConnection objConnection = new原创 2009-09-28 14:32:00 · 431 阅读 · 0 评论 -
C# 中的委托和事件
C# 中的委托和事件欢迎浏览本文的后续文章: C#中的委托和事件(续)PDF 浏览:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdf文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS200转载 2009-10-10 13:49:00 · 379 阅读 · 0 评论 -
int?和??的使用
int? intValue = null; //value = 1; //intValue等于null,value1的值为??后面的值。 int value1 = intValue ?? 1; int? intValue1 = 3; //valu原创 2009-10-12 11:09:00 · 432 阅读 · 0 评论 -
栈(Stack)和队列(Queue)
栈和队列是两种重要的线性结构。从数据结构角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子集,它们是操作受限的线性表,因此,可称为限定性的数据结构。但从数据类型角度看,它们是和线性表大不相同的两类重要的抽象数据类型。由于它们广泛应用在各种软件系统中,因此在面向对象的程序设计中,它们是多型数据类型。本章除了讨论栈和队列的定义、表示方法和实现外,还将给出一些应用的例子。原创 2009-10-12 14:24:00 · 1276 阅读 · 0 评论 -
C#利用Web Service实现短信发送
通过编程方式实现短信息的发送对很多人来说是一件比较烦杂的事情,目前一般的解决方法是通过计算机和手机的连线,通过可对手机编程的语言编写相关的手机短信息程序来实现,而这种方法对于一般人来说是很难达到的,因为此种方法不仅要有很多必备的硬件设备,也还需懂得手机编程的相关知识。本文就来探讨一下另外一种通过VisualC#发送短信息的简单实现方法,这种方法在实现过程中比我们想象的要简单许多,只需拥翻译 2009-10-12 14:41:00 · 659 阅读 · 0 评论 -
.net控件开发(五)之 深入理解控件的呈现原理
.net控件开发(五)之 深入理解控件的呈现原理 首言:ASP.NET控件基本上都是继承Framework 已有三个基类,Control,WebControl,CompositeControl下面我就各个基类的呈现方法 讲述Control,WebControl, CompositeControl各自的呈现过程。转载 2009-10-10 09:53:00 · 1090 阅读 · 0 评论 -
类Enumerable
using System;using System.Collections;using System.Collections.Generic;using System.Runtime.CompilerServices;namespace System.Linq{ // 概要: // System.Collections.Generic.IEnumer原创 2009-10-12 16:13:00 · 782 阅读 · 0 评论 -
百度面试题蚂蚁(C#)
有一根27厘米长的细木杆,在第3厘米,7厘米,11厘米,17厘米,23厘米这五个位置上各有一只蚂蚁,木杆很细,不能同时通过两只蚂蚁,开始时,蚂蚁的头朝向左还是右是任意的,他们只会朝前走或掉头,但不会后退,当人一两只蚂蚁相遇后,蚂蚁会同时掉头朝反方向走,假设蚂蚁们每秒钟可以走1厘米的距离. 求所有蚂蚁都离开木杆的最小时间和最大时间。 a-> 相遇之后掉头原创 2009-10-13 16:44:00 · 937 阅读 · 2 评论 -
C#指针使用
项目属性->生成->选择“允许不安全代码” int x = 10; int* px, py; px = &x; py = px; *px = 20;原创 2009-10-16 10:16:00 · 412 阅读 · 0 评论 -
冒泡排序、选择排序
算法:冒泡算法: 共需要N次排序,每次排序需要循环N-i次 冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数原创 2009-10-26 16:39:00 · 487 阅读 · 0 评论