Visual C# 插件构架实战(转)
一、引言 1. 问题的引入 假设你设计的程序已经部署到用户的计算机上,并且能够正常运行了。但是有一天,用户打来了电话——他们要求增加新的功能。确定了用户的需求后,你竟然发现原有的软件架构已经无法胜任新增任务的需求——你需要重新设计这个应用了!但问题是,就算你又用了一个开发周期完成了用户需要的应用,却不能保证用户的需求不会再次变更。也就是说,需求蔓延的可能性依然存在。因此,这种情况下插件构架更能显示出它的优越性。 2. 几个解决方案的对比 我总结了一下我所接触到的插件构架,大致上可分为以
用C#代码生成一个简单的PDF文件(转)
using System;using System.IO;using System.Text;using System.Collections; namespace PDFGenerator{/// <summary>/// Application : Generation of PDF file from text/// Author : Pramod Kumar Singh /// Date : 25th July 2001///</summary>public class PDFGenerator{static float pageWidth = 594.0f;static float pageDepth = 828.0f;static float pageMargin = 30.0f;static float fontSize = 10.0f;static float leadSize = 10.0f;//Create a PDF file.//PDF on Diskstatic StreamWriter pPDF=new StreamWriter(&q
深入解析C#编程中的事件(转)
一个事件是一个使对象或类可以提供公告的成员。用户可以通过提供事件句柄来为事件添加可执行代码。事件使用事件声明来声明: 一个事件声明既可以是一个事件域声明也可以是事件属性声明。在每种情况中,声明都可以由属性集合, new 修饰符, 四个访问修饰符的有效组合 和一个静态修饰符组成。 一个事件声明的类型必须是一个代表类型, 而那个代表类型必须至少同事件本身一样可访问。 一个事件域声明与一个声明了一个或多个代表类型域的域声明相应。在一个事件域声明中不允许有readonly 修饰符。 一个事件属性声明与声明了一个代
C#中的非安全编程(转)
介绍 这是C/C++程序迷们经常谈论的一个话题,同时也是一个复杂的、难以理解的话题-指针!每次谈到C#,大多数我遇到的人都持这样的观点-C#中没有指针的概念。而实际上,它已经被废除了,取而代之的是C#中的非安全编程-如何在程序中使用指针。不同于其字面意思的是,使用指针编程并没有什么不安全的。 它如此受关注的根本原因是,非安全编程不同于习惯的.NET开发规范,而需要编程人员进行明确定本地环境设置(仅适用于本地执行)。本文我将从区别两个最容易被疑惑的概念-非安全代码与非受控代码开始讨论非安全编程这个主题。接下
C#中的构造函数和析构函数的用法(转)
摘 要:构造函数与析构函数是一个类中看似较为简单的两类函数,但在实际运用过程中总会出现一些意想不到的运行错误。本文将较系统的介绍构造函数与析构函数的原理及在C#中的运用,以及在使用过程中需要注意的若干事项。 关键字:构造函数;析构函数;垃圾回收器;非托管资源;托管资源 一.构造函数与析构函数的原理 作为比C更先进的语言,C#提供了更好的机制来增强程序的安全性。C#编译器具有严格的类型安全检查功能,它几乎能找出程序中所有的语法问题,这的确帮了程序员的大忙。但是程序通过了编译检查并不表示错误已经不存在
用C#开发程序应用框架(转)
简介: 框架是一种定制的通用的应用程序开发基础软件,在其基础上可以开发完整的关且功能完善的软件。在最近几年里,已经成功实现了某些应用领域的开发框架,比如说用户介面开发及数据访问开发等。如果能成功的开发出一个框架,这将是一个突破,因为这意味着开发将不再从头开始实现某个功能:比如一个框架如果可以成功的生成一个用户介面,哪么它也能生成做任意的用户介面。例如,假如我们使用java Applets 和servlets,我们仅仅需要重写某些方法,就可以实现我们自己的代码。这其中java Applets和servlets就是我们所使用的框架平台。M
C#里的委托和事件实现Observer之三(转)
(二)、利用委托的实现:下面有个例子:在C# 控制台应用程序编辑运行成功:using System;namespace CSharpConsole{ // 定义委托 public delegate void PlayGameHandler(object sender,System.EventArgs e); // 负责扣钱的人----主管 public class 主管 { public 主管() { Console.WriteLine("生成主管");
C#里的委托和事件实现Observer之二(转)
二、事件的简介C# 中的“事件”是当对象发生某些事情时,类向该类的客户提供通知的一种方法。1、事件的声明:声明的格式为:<access modifier> event <delegate type> EventName 因为使用委托来声明事件,所以在类里声明事件时,首先必须先声明该事件的委托类型<delegate type>(如果尚未声明的话)。在上面我们已经提到过了委托类型的声明,但是在.net framework下为事件使用的委托类型进行声明时有更严格的规定:(1)、 事件的委托类型应采用两个参数;(2)、两个参数分别是:指示事件源的“对象源”参数和
C#里的委托和事件实现Observer之一(转)
一、委托的简介1、委托的声明:<access modifier> delegate <returnType> HandlerName ([parameters])例如:public delegate void PrintHandler(string str); 委托声明定义了一种类型,它用一组特定的参数以及返回类型来封装方法。对于静态方法,委托对象封装要调用的方法。对于实例方法,委托对象同时封装一个实例和该实例上的一个方法。如果您有一个委托对象和一组适当的参数,则可以用这些参数调用该委托。2、委托的使用:using System;public class MyClass{ public static void Main()
C#处理文本文件之二(转)
(3).如何实现打印预览: 打印预览是通过打印预览对话框来实现的,实现对读取得文本文件的打印预览,最为重要的就是要通知打印预览对话框所要预览的文件的内容。下面代码就是把richTextBox1中显示的内容,通过打印预览对话框显示出来: string strText = richTextBox1.Text ; StringReader myReader = new StringReader ( strText ) ; PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ; printPreviewDialog1.Document = ThePrintDocument ; printPreviewDialog1.FormBorder
C#处理文本文件之一(转)
文本文件是一种常用的文件格式,所以如何处理文本文件也就成为编程的一个重点。本文就来探讨一下用C#是如何来处理文本文件。其内容重点就是如何读取文本文件内容、如何改变文本文件的内容,以及如何用C#来实现对读取后的文本文件的打印预览和打印。 一. 本文程序设计和运行的软件环境: (1).微软公司视窗2000服务器版 (2)..Net FrameWork SDK Beta 2 二. C#处理文本文件的一些重要环节: (1).如何读取文本文件内容: 在本文介绍的程序中,是把读取的文本文件,用一个richTextBox组件显示出来。要读取文本文件,必须
用C#设计一个命令行方式的文件分割器(转)
共享软件中有很多界面美观的文件分割程序,将一个大文件分割成几个较小的文件,分别保存,需要的时候再合并成原来的文件,常常是必备的工具。 本文用微软的visual studio .net开发环境的C#语言也来设计一个文件分割器,并且以DOS命令行方式运行,就象使用copy命令一样简单。从中也可以了解文件分割的原理以及.net框架对文件的读写操作方式。 新建一个visual c#项目,选择“控制台应用程序”,项目名称设置为filesplitcon,系统自动产生了class1.cs文件,将以下的代码加入到class1.cs的相应区域中:using System;using System.Data
由C#风潮想起的-给初学编程者的忠告(转)
我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学院”。96,97级的不少大学生都去做Web 了。当然我没有任何歧视某一行业的意识。我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是
C#程序调用外部程序(转)
/** 编程语言:Visual Studio .NET C# (Beta 2)* 作 者:迪泊威* 功 能:通过C#程序调用 Windows 记事本程序 编辑一个* 名为 test.txt 的文本文件。** 在整个程序中 System.Diagnostics.Process.Start(Info) * 为主要语句。* 如果只是单独执行一个外部程序,可用一条如下代码即可:* System.Diagnostics.Process.Start(* "外部程序名","启动参数");*/using System;class test{static void Main(){//声明一个程序信息类System.Diagnostics.ProcessStartInfo Info = new Sy
怎样用C#实现完整文档打印功能(转)
在windows应用程序中文档的打印是一项非常重要的功能,在以前一直是一个非常复杂的工作,Microsoft .net Framework的打印功能都以组件的方式提供,为程序员提供了很大的方便,但是这几个组件的使用还是很复杂的,有必要解释一下。打印操作通常包括以下四个功能1 打印设置 设置打印机的一些参数比如更改打印机驱动程序等2 页面设置 设置页面大小纸张类型等3 打印预览 类似于word中的打印预览4 打印 下面我把我编写的记事本(全部源代码可以在http://www.cndot.net中下载)中用到的打印功能的代码进行解释希望能给大家一些帮助实现打印功能的
C#方法中的ref和out(转)
{大部分参照<<21天学通C#>>,小部分写了自己的感受,编程功底比较差,只能写这么多,多包涵}ref 通常我们向方法中传递的是值.方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢弃,而原来的值不将受到影响.此外我们还有其他向方法传递参数的形式,引用(ref)和输出(out). 有时,我们需要改变原来变量中的值,这时,我们可以向方法传递变量的引用,而不是变量的值.引用是一个变量,他可以访问原来变量的值,修改引用将修改原来变量的值.变量的值存储在内存中,可以创建一个引用,他指向变量在内存中的
C#编写的生成缩略图程序(转)
if(fileupload.PostedFile!=null) { //addto为要添加的属性,aboutfile为文件说明 string nam = fileupload.PostedFile.FileName ; //取得文件名(抱括路径)里最后一个"."的索引 int i= nam.LastIndexOf("."); //取得文件扩展名 string newext =nam.Substring(i); //这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复 DateTime now = DateTime.Now; string newname=now.DayOfYear.ToString()+fileupload.PostedFile.ContentLength.ToString();
用C#生成Excel文件的方法和Excel.dll组件生成的方法(转)
一个示例:class AppTest { private Excel.ApplicationClass _x; public static void Main0() { AppTest a = new AppTest(); a._x = new Excel.ApplicationClass(); a._x.UserControl = false; for (int i = 0 ;i < 4; i++) { a.SaveToXls("D: est" + i + ".xls"); // 本例是在D盘下建立的test文件夹 } a._x.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject((object) a._x); System.GC.Collect(); } private void SaveToXls(string filename) { Excel.Work
c#.net常用函数和方法集之八(转)
2、Int32.Parse(变量) Int32.Parse("常量") 字符型转换 转为32位数字型 3、 变量.ToString() 字符型转换 转为字符串 12345.ToString("n"); //生成 12,345.00 12345.ToString("C"); //生成 ¥12,345.00 12345.ToString("e"); //生成 1.234500e+004 12345.ToString("f4"); //生成 12345.0000 12345.ToString("x"); //生成 3039 (16进制) 12345.ToString("p"); //生成 1,234,500.00% 4、变量.Length 数字型 取字串长度: 如: string str="中国"; int Len
c#.net常用函数和方法集之七(转)
1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前日 int 日=currentTime.Day; 1.5 取当前时 int 时=currentTime.Hour; 1.6 取当前分 int 分=currentTime.Minute; 1.7 取当前秒 int 秒=currentTime.Second; 1.8 取当前毫秒 int 毫秒=currentTime.Millisecond; (变量可用中文) 1.9 取中文日期显示——年月日时分 string strY=currentTime.ToString("f&qu