.NET中的特殊类型成员之一(转)
.NET中的特殊类型成员 ----微软 .NET平台系列文章之三 译文/赵湘宁 在前面的两篇文章中,我们研究了类型的基础知识。本文我们将考察类型能定义的某些特殊成员。在大力简化处理类型及其对象实例需要的语法方面,这些类型有助于面向对象设计。 类型构造器 你已经熟悉了什么是构造器,它负责对象实例状态的初始化。除了实例构造器以外,Microsoft(r).NET公共语言运行时(CLR)还支持类型构造器(也叫做静态构造器、类构造器或类型初始化)。类型构造器可被应用到接口,类和数值类型。它允许任何在类型中声明的成员被访问之
微软.NET平台中类型使用的基本原理(转)
微软.NET平台中类型使用的基本原理 ----微软 .NET平台系列文章之二 译文/赵湘宁 在上一次的讨论中,我介绍了许多微软.NET平台公共语言运行时CLR (common language runtime) 中与类型有关的基本概念。其中重点讨论了如何从System.Object类型中派生出所有别的类型,以及程序员能够使用的多种强制类型转换机制(如C#操作符)。最后,我提到了编译器如何使用名字空间以及公共语言运行时CLR是如何忽略名字空间的。 在本文中,我们将继续上次类型基础的讨论。首先从介绍简单类型开始,然后迅速进入关于引用类型和数值类型的讨论。
C#自己的邮件自己发(转)
长时间使用OutlookExpress收发电子邮件的软件,你是不是也有点烦?是不是像我一样,也想什么时候自己动手编写一个属于自己收发电子邮件的软件。如果是这样,那么随我来吧!其实在VB中,应用程序可以通过调用微软公司的MAPI(MessagingApplicationProgrammingInterface)消息应用程序编程接口,轻松实现收发电子邮件的功能。 VB中有两个邮件收发功能的核心控件:MAPI会话和MAPI消息控件。MAPI会话控件用于建立和控制一个MicrosoftMail会话,MAPI消息控件用于创建和收发邮件消息。此外,程序必须运行在采用MAPI的消息系统(如MicrosoftEx
.NET架构的核心开发技术之二(转)
.NET的确牵动着每个人的猜测…… 1.通用语言运行库 除了通用语言运行库的字面含义外,在开发阶段和运行过程中它还扮演着另一个角色。在组件运行时,运行库负责管理内存分配、启动和中止线程和进程、强化安全系数,同时还调整任何该组件涉及到的其他组件的附件配置。在开发阶段,运行库的角色稍微有点变化:因为很多方面可以自动实现(例如内存管理等)。运行库可以使开发过程变得非常简单,特别是同今天的COM编程相比更是如此。特别典型的是,像Reflection这样的特性可以极大地缩小开发人员将商业逻辑转化成一个可重复使用
c#时间增加并对比做法(转)
int jg=72;//设置一个增加的时间 DateTime dt=Convert.ToDateTime("2006-4-23 12:22:05");// 设置一个初始化的时间 DateTime newdt=dt.AddHours(jg);//初始化时间加上增加的时间 DateTime nowt=DateTime.Now;//现在的时间 Response.Write("现在时间是:"+nowt+"<br>"); Response.Write("数据库时间是:"+dt+"<br>"); Response.Write("新的时间是:"+newdt+"<br>"); if(newdt<nowt)//如果相加后的时间大于现在的时间 { Re
.NET架构的核心开发技术之一(转)
不可否认,应用软件的开发正在经历一次巨变——将最终增强开发人员的生产力并开启一道通向全新概念的应用程序的大门。 新型的开发模式正逐渐被推广,将分发软件演变成一种服务还有待于所有开发人员的共同努力,而互联网却将彻底改变应用程序的开发模式和配置方式。 传统上,软件开发人员通过集成本地系统服务的方式开发应用程序。这种模型使开发人员有权使用一整套丰富的开发资源,精确控制应用程序的性能。 如今,开发人员在很大程度上已挣脱了这种模式的束缚,致力于构建具有复杂结构的n层系统,这种系统能将网
VB COM基础讲座之发布组件(转)
既然我们构造了这世界上最有魅力的ActiveX组件,就应该把它们发布出去。那么我们该怎么做呢? 幸运的是,发布COM组件是一件非常容易的事。 我们只要使用Package & Deployment(打包和展开)向导就可对计算机上的常规Visual Basic工程进行相应的操作。同样,该向导还适用于ActiveX工程。 但是,发布时只有ActiveX组件本身自己吗?如果不是,那么为何又要运行向导,单独地为自己的ActiveX工程创建一个安装程序?或是连同使用它的应用程序一起发布?对于常规工程来说,简单地创建一个安装,其组件就会自动被打包。 唔,可能
用VB制作文件下载程序(转)
下载文件是每个网友都经常做的事,大家一般都是用一些专用软件如“网络蚂蚁”来完成。但是,如果要自己编写一个程序,实现下载一个特定的文件(如下载相关的网页并显示出来)又该怎么做呢?不要急,看了下面的介绍你就会知道实现文件的下载其实是很简单的。 在VB中有一个 Winsock 控件,通过它可以实现文件的下载。下面我首先介绍一下该控件的主要属性、方法和事件: localPor属性:设置本地计算机使用的端口(一般设置为0); Protocol属性:设置Winsock控件使用的协议,tcP或uDP(一般设置为0); remotePort属性:设置要连
用VB实现用户登录密码的修改(转)
用VB实现用户登录密码的修改 我们在设计应用软件时,总希望在进入软件主窗体之前,显示用户登录窗体,要求用户输入密码,当用户的密码得到验证后,即可进入软件应用环境。用户登录密码的修改是指进入主窗体后,能够对登录密码进行修改,设置的新密码将成为下一次登录时用的密码,本文就谈谈如何在VB5.0中实现用户登录密码的修改。 一、实现原理 在VB5.0中,文件共有三类:顺序文件;随机文件;二进制文件。顺序文件的主要用途是存取文本文件,按照先后顺序进行存取数据,使用简单容易。要实现密码的修改设置,可把密码保存在一
Beginner with C# 6(转)
赶出一编!请指正! 1。6 统一系统类型(type system unification) c#独创了一种类型——统一系统类型(为了这个累刑,我头疼死了。谁有更好的名字,请务必告诉 我)。总之,所有的其他类型,包括值和引用,都可以被当作统一系统类型来对待。从概念上说, 所有的类型都从它派生。这样,其他的类型就可以使用统一系统类型的属性和方法。包括一些“简 单”类型,如:int。还是给个例子吧:*/ using system; class test { static void main() { console.writeline(3.tostring()); } } /*“3.tostring()”调用
用Visual C#实现文件大批量处理之二(转)
2、文件合并按钮响应方法 string winDir1; //源文件路径 string winDir2; //目标文件路径 string temp1; int ii; winDir1=textBox1.Text.Trim(); winDir2=textBox2.Text.Trim()+" otal.txt"; //获取winDir1路径下所有文件列表 string[] dirs = Directory.GetFiles(winDir1); //建立或打开目标文件 StreamWriter writer = new StreamWriter(winDir2); writer.WriteLine("这是汇总文件头"); writer.WriteLine("这是汇总文件第二行"); ii=0; foreach(string dir in dirs) { StreamReader reader=new Strea
用Visual C#实现文件大批量处理之一(转)
在科研、企业的数据处理中,有时会涉及大量的文件操作。在大量数据处理的时侯,有时需要进行多对一,或一对多的文件操作,即多个数据文件与一个数据文件进行信息交互,Microsoft的.NET开发利器C#提供了前所未有的高开发效率,在文件操作方面也有所体现。笔者基于.NET平台,以C#开发工具,实现了如下功能: 1、多个文本文件合并成一个文件; 2、一个电子表格文件分成多个文件。 一、编程任务描述 : 1、从多个文件中读取数据生成一个文本文件 笔者是处理测井资料的时侯碰到这种编程需求,现有测井资料若干,每口井一个
浅析C#中图形编程之四(转)
3、运用GradientBrush: GradientBrush又可分为LinearGradientBrush和PathGradientBrush两种,从它们的名称我们可以知道前者是线性渐变的,而后者则是路径渐变的,因而能创造出更复杂和完美的效果。下面我就给大家分别举例: 1)、运用LinearGradientBrush: using System; using System.Windows.Forms; using System.Drawing; using System.Drawing.Drawing2D; public class LinearGradientbru:Form { public LinearGradientbru() { this.Text = "运用LinearGradientBrush示例"; this.Paint += new PaintEventHandle
浅析C#中图形编程之三(转)
使用画刷对象: 画刷对象是用特定的颜色、模式或是图像来填充一块区域的。总共有四种类型的画刷:SolidBrush(默认的画刷)、HatchBrush、GradientBrush以及TexturedBrush。下面,我们分别给出实例来进行介绍。 1、运用SolidBrush: using System; using System.Windows.Forms; using System.Drawing; using System.Drawing.Drawing2D; public class Solidbru:Form { public Solidbru() { this.Text = "运用SolidBrush示例"; this.Paint += new PaintEventHandler(Fill_Graph); } public void Fill_Graph(object send
浅析C#中图形编程之二(转)
使用System.Drawing.Drawing2D名字空间: 如果你有一些图形图像编程的经验,那么你一定知道画笔和画刷的概念。它们在图形编程有非常广泛的运用。System.Drawing.Drawing2D名字空间提供了相当强大的功能,能让开发者很容易地操作画笔以及画刷对象。比如,你可以通过设置画笔的DashStyle属性(有Dash、DashDot、Solid等风格)来确定直线的风格。同样,通过运用SolidBrush、HatchBrush、GradientBrush等画笔你可以很轻易地修改被填充区域的外观。比如,你可以用SolidBrush将一个矩形区域用许许多多不同粗细的直线来填充。那么,我们在什
浅析C#中图形编程之一(转)
像Java一样,C#提供了一整套相当丰富的类库、方法以及事件以供开发者使用。C#还引入了GDI+,它是由GDI演变而来的,具有比GDI更强大的功能而且简化了程序员的编程工作。所以开发者运用这些,就可以很方便的开发出具有强大图形图像功能的应用程序了。本文,笔者就通过一些实例像读者介绍一下C#中的图形编程的基本知识。 简单实例: 首先,让我们从例子开始,以下是一个最简单的实例: using System; using System.Windows.Forms; using System.Drawing; public class Hello:Form { public Hello() { this.Paint += new PaintEventHa
使用c#捕获windows的关机事件(转)
在公司上班,下班时需要签退,而我呢隔三差五就会忘那么一次。怎么办呢,于是就想能不能捕获windows的关机事件,做一个程序让它在关机的时候提醒我一下呢。 非常幸运很容易就找到了Microsoft.Win32命名空间下面的SystemEvents类,他有一个静态的事件SessionEnding在系统注销或者关机时发生,此事件只有在winform的程序下有效,而在控制台程序下面无效,不能激发事件;还有一点我们必须在程序推出时将加上的事件移除掉,否则就容易造成内存溢出。 关键代码如下:以下是引用片段: using System; using System.Collections.Gen
More Effective C++之考虑变更程序库(转)
程序库的设计就是一个折衷的过程。理想的程序库应该是短小的、快速的、强大的、灵活的、可扩展的、直观的、普遍适用的、具有良好的支持、没有使用约束、没有错误的。这也是不存在的。为尺寸和速度而进行优化的程序库一般不能被移植。具有大量功能的的程序库不会具有直观性。没有错误的程序库在使用范围上会有限制。真实的世界里,你不能拥有每一件东西,总得有付出。 不同的设计者给这些条件赋予了不同的优先级。他们从而在设计中牺牲了不同的东西。因此一般两个提供相同功能的程序库却有着完全不同的性能特征。 例如,考虑iostrea
C#中为DataGrid添加下拉列表框(转)
本文将介绍如何在 System.Windows.Forms.DataGrid中切入使用ComboBox控件,主要包括三方面的内容。 1. 在DataGrid中加入ComboBox列; 2. 把在DataGrid中的修改保存到对应的网格; 3. 设置DataGrid中网格的焦点。 下面是整个源代码,一些功能可以看注释。 using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace DataGridTest { public class Form1 : System.Windows.Forms.Form { private System.Win
让窗体飘动起来--C#中Timer组件用法(转)
Timer组件是也是一个WinForm组件了,和其他的WinForm组件的最大区别是:Timer组件是不可见的,而其他大部分的组件都是都是可见的,可以设计的。Timer组件也被封装在名称空间System.Windows.Forms中,其主要作用是当Timer组件启动后,每隔一个固定时间段,触发相同的事件。Timer组件在程序设计中是一个比较常用的组件,虽然属性、事件都很少,但在有些地方使用它会产生意想不到的效果。 本文介绍的程序,是用Visual C#做的一个窗体飘动的程序,这其中就大量的使用了Timer组件。下面就来介绍一下,这个程序的设计和运行的环境。 一. 本