C#语言基础
文章平均质量分 79
confei
group165890@msnzone.cn
展开
-
深入剖析C#继承机制(1)
一. 继承基础知识 为了提高软件模块的可复用性和可扩充性,以便提高软件的开发效率,我们总是希望能够利用前人或自己以前的开发成果,同时又希望在自己的开发过程中能够有足够的灵活性,不拘泥于复用的模块。C#这种完全面向对象的程序设计语言提供了两个重要的特性--继承性inheritance 和多态性polymorphism。 继承是面向对象程序设计的主要特征之一,它可以让您重用代码,可以节省程序设计原创 2007-07-02 10:29:00 · 577 阅读 · 0 评论 -
如何在子线程中操作窗体上的控件
一般来说,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能简单的通过控件对象名来操作,但不是说不能进行操作,微软提供了Invoke的方法,其作用就是让子线程告诉窗体线程来完成相应的控件操作。 现在用一个用线程控制的进程条来说明,大致的步骤如下:1. 创建Invoke函数,大致如下:原创 2007-10-30 16:51:00 · 418 阅读 · 0 评论 -
路径,文件,目录,I/O常见操作汇总(一)
摘要: 文件操作是程序中非常基础和重要的内容,而路径、文件、目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供给你一点有益的思路,如果你有好的建议,恳请能够留言,使这些内容更加完善。 主要内容: 一、路径的相关操作, 如判断路径是否合法,路径类型,路径的特定部分,合并路径,系统文件原创 2007-10-18 10:19:00 · 555 阅读 · 0 评论 -
C#正则表达式小结
只能输入数字:"^[0-9]*$"。只能输入n位的数字:"^/d{n}$"。只能输入至少n位的数字:"^/d{n,}$"。只能输入m~n位的数字:。"^/d{m,n}$"只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。只能输原创 2007-11-14 10:57:00 · 538 阅读 · 0 评论 -
.net C# Treeview的Node拖动,Node节点上下移动
定义一个TreeView 名字为TVdepartment,设置allowdrop为True//移动代码 private void MiMoveUp_Click(object sender, EventArgs e) //向上移动 { //by 闫磊 Email:Landgis@126.com,yanleigis@21cn.com 2007.10.1原创 2008-10-15 21:20:00 · 3799 阅读 · 0 评论 -
C#画图(WinForm)
使用C#在Windows应用程序里绘图,可能用到移动图像、擦掉图像,调整大小等等。我这里有一个画图的小程序,简单的实现了这些。。。 定义图像的基类: abstract class DrawBase...{ internal Color m_BackColor; internal Color m_ForeColor; internal static int m_转载 2009-02-03 16:21:00 · 756 阅读 · 0 评论 -
一个完整的RSA数字签名的Project
RSA&MD5实现电子签章 本人目前在做一个关于“数字签名”的项目,在网上查资料,感觉这方面的都非常的少,一般都是讲RSA的算法,或者“数字签名”的原理,完全是浪费时间。我经过摸索,小有进展,初步实现功能。今天写出来,希望能给以后的做这个的朋友提供个方便。还有一件事,在我查资料的时候也遇见很多朋友在做这个项目,但是我感觉他们都在进入了几个误区。我先把这几个误区说说,以免大家以后走错原创 2009-02-26 14:29:00 · 2063 阅读 · 1 评论 -
C#重启远程计算机
C#实现启动远程计算机的原理是"视窗管理规范"。就是所谓的"WMI"(Windows Management Instrumentation)。Windows 管理规范 (WMI) 支持通过 Internet 管理系统的结构。通过提供管理环境的一致观察,WMI 为用户提供通用访问管理信息。该管理的一致性使您能够管理整个系统,而不只是组件。从 Microsoft MSDN上,您可以获得有关 WMI原创 2009-03-26 17:38:00 · 583 阅读 · 0 评论 -
是Attribute,还是Property?
是Attribute,还是Property?有时是个麻烦。 Attribute和Property都可以翻译成“属性”,有的地方用Attribute表示“属性”,有的地方又在用Property,初学者常常在这两个单词间“迷失”,甚至认为二者没有区别,是一样的。可是Attribute不等于Property。二者之间到底有何区别? 我们从OOA/OOD(Object Oriented A原创 2009-07-23 11:03:00 · 432 阅读 · 0 评论 -
C#中静态构造函数的学习
(1)用于对静态字段、只读字段等的初始化。 (2)添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。 (3)类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数 (4)静态构造函数是不可继承的,而且不能被直接调用。 (5)如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在原创 2009-08-13 18:02:00 · 419 阅读 · 0 评论 -
特性的应用
<br />Type myType = Type.GetType("LearnVCS.Lib.MyAnyClassBase"); object obj = Activator.CreateInstance(myType); foreach (MethodInfo myMethod in myType.GetMethods()) { foreach (Attribute attr in At原创 2010-06-11 16:30:00 · 518 阅读 · 0 评论 -
ppt vba 程序设计
public void BootPPT() ...{ _app = new PPT.ApplicationClass(); _app.Activate(); pptPre = _app.Presentations.Add( Microsoft.Office.Core.MsoTriSt原创 2007-04-26 15:10:00 · 3734 阅读 · 2 评论 -
Web Service简介
.定义由两部分组成·SOAP--Web Service之间的基本通信协议。·WSDL--Web Service描述语言,它定义了Web Service做什么,怎么做和查询的信息。2.简单的Web Service实现包含四个基本步骤·创建Web Service的商业逻辑(通常是一些Java类)·将这些Java类部署到一个SOAP服务器上·生成客户访问代码·部署客户应用注意:WSDL等文件的生成通原创 2007-07-20 16:16:00 · 612 阅读 · 0 评论 -
使用C#进行Word 2002和Excel 2002编程
摘要:了解 Microsoft C# 和大型复杂的 COM 服务器之间的 COM 互操作性。本文介绍了如何准备 Office XP COM 对象以及如何在 C# 程序中使用这些对象,同时还提供了一些提示,帮助您理解为何某些操作必须通过特定方法才能实现。 简介 Microsoft® Office XP 最强大的功能之一,就是其组件(例如 Microsoft Excel 2002 和 Mi原创 2007-07-16 14:37:00 · 758 阅读 · 0 评论 -
深入剖析C#继承机制(2)
二、C#中的继承符合下列规则: 1、继承是可传递的。如果C从B中派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中的成员。Object 类作为所有类的基类。 2、派生类应当是对基类的扩展。派生类可以添加新的成员,但不能除去已经继承的成员的定义。 3、构造函数和析构函数不能被继承。除此以外的其它成员,不论对它们定义了怎样的访问方式,都能被继承。基类中成员的访问方式只能决定派原创 2007-07-02 10:30:00 · 462 阅读 · 0 评论 -
深入剖析C#继承机制(3)
三. 访问与隐藏基类成员 (1) 访问基类成员 通过base 关键字访问基类的成员: 调用基类上已被其他方法重写的方法。 指定创建派生类实例时应调用的基类构造函数。 基类访问只能在构造函数、实例方法或实例属性访问器中进行。 从静态方法中使用 base 关键字是错误的。 示例:下面程序中基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法。原创 2007-07-02 10:31:00 · 434 阅读 · 0 评论 -
深入剖析C#继承机制(4)
(2) 隐藏基类成员 想想看,如果所有的类都可以被继承,继承的滥用会带来什么后果?类的层次结构体系将变得十分庞,大类之间的关系杂乱无章,对类的理解和使用都会变得十分困难。有时候,我们并不希望自己编写的类被继承。另一些时候,有的类已经没有再被继承的必要。C#提出了一个密封类(sealed class)的概念,帮助开发人员来解决这一问题。 密封类在声明中使用sealed 修饰符,这样就可以防止该类原创 2007-07-02 10:32:00 · 531 阅读 · 0 评论 -
深入剖析C#继承机制(5)
四、多级继承 一些面向对象语言允许一个类从多个基类中继承,而另一些面向对象语言只允许从一个类继承,但可以随意从几个接口或纯抽象类中继承。 只有C++支持多级继承,许多程序员对此褒贬不一。多级继承常会引起继承来的类之间的混乱,继承而来的方法往往没有唯一性,所以C#中类的继承只可以是一个,即子类只能派生于一个父类,而有时你必须继承多个类的特性,为了实现多重继承必须使用接口技术,下面是对接口的多重继原创 2007-07-02 10:33:00 · 532 阅读 · 0 评论 -
深入剖析C#继承机制(6)
五、继承与访问修饰符 访问修饰符是一些关键字,用于指定声明的成员或类型的可访问性。类的继承中有四个访问修饰符: public protected internal private。使用这些访问修饰符可指定下列五个可访问性级别: public protected internal internal protected private。原创 2007-07-02 10:34:00 · 479 阅读 · 0 评论 -
深入剖析C#继承机制(7)
3、继承中对使用可访问性级别的限制 声明类型时,最重要的是查看该类型是否必须"至少"与其他成员或类型"具有同样的可访问性"。例如,直接基类必须至少与派生类具有同样的可访问性。以下声明将导致编译器错误,因为基类 BaseClass 的可访问性小于 MyClass: class BaseClass {...}public class原创 2007-07-02 10:35:00 · 567 阅读 · 0 评论 -
委托和事件
Delegates and Events in C# / .NET More Information on installing the .Net Framework click原创 2007-07-05 16:23:00 · 839 阅读 · 0 评论 -
Abstract class versus Interface
IntroductionIn this article along with the demo project I will discuss Interfaces versus Abstract classes. The concept of Abstract classes and Interfaces is a bit confusing for beginners of Object O原创 2007-07-02 17:14:00 · 585 阅读 · 0 评论 -
DataGridView 修改 删除
private int curRow = 0;//鼠标右键得到的当前行号 #region 激发鼠标事件,显示右键菜单,得到被选中的行的行号,注意第一列被隐藏的情况考虑 private int showRightMenu(DataGridView dataGridView, ContextMenuStrip contextMenuStrip, DataGridView原创 2007-07-10 18:04:00 · 1390 阅读 · 0 评论 -
用Visual C#调用Windows API函数
Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows API函数,同时为了实现功能扩展,一般也都提供了调用WindowsAPI函数的接口, 也就是说具备调用动态连接库的能力。Visual C#和其它开发工具一样也能够调用动态链接库的API函数。.NET框架本身原创 2007-07-13 14:30:00 · 555 阅读 · 0 评论 -
C# override overload overwrite
<br />overload (重载)关键字: 无<br /> 1.使用的地方:同一类里。(其实是同一类里同一名称的方法不同版本的一种叫法)<br /> 2.要重载的方法和被重载的方法要求:参数列表不同或返回类型和参数列表都不同,只有返回类型不同不能重载。(所谓的参数列表不同就是参数个数或者参<br /><br />数类型不同或者二者都不同)<br />overwrite (重写)关键字:new<br /> 是指子类隐藏了父类的方法,当然,通过一定的转换,可以在子类的对象中访问父类的方法。原创 2010-12-27 13:17:00 · 526 阅读 · 0 评论