C#
皮特大熊
仰望星空,脚踏实地
展开
-
启动应用程序的桌面软件
1using System;using System.Collections.Generic;using System.Drawing;using System.Windows.Forms;using System.Diagnostics;namespace process{public partial class MainForm{[STAThread]原创 2012-06-05 09:19:23 · 594 阅读 · 0 评论 -
VS中组件
托管DLL和非托管DLL的区别。狭义解释讲,托管DLL就在Dotnet环境生成的DLL文件。非托管DLL不是在Dotnet环境生成的DLL文件。 托管DLL文件,可以在Dotnet环境通过 “添加引用” 的方式,直接把托管DLL文件添加到项目中。然后通过 Using DLL命名空间,来调用相应的DLL对象 。非托管DLL文件,在Dotnet环境应用时,通过 DllImport 调用。原创 2012-09-29 15:41:58 · 1991 阅读 · 0 评论 -
获取时间及时间计算问题
1. --DateTime 数字型 2. System.DateTime currentTime=new System.DateTime(); 3. 取当前年月日时分秒 currentTime=System.DateTime.Now; 4. 取当前年 int 年=currentTime.Year; 5. 取当前月 int 月=currentTime.Month; 6. 取当前日原创 2012-09-18 12:39:50 · 1391 阅读 · 0 评论 -
CSV文件读取
1.如果csv文件字段中有特殊字符,整个字段应该用双引号包起来。特殊字符有三种,逗号[,] 回车换行[\r\n]和处于字段开头的双引号["]例如:字段 a,b,c(b,c 文本中包含逗号),d 就应该变成a,"b,c",d 有回车换行的也是一样 2.如果 csv字段中有特殊字符,并且字段中含有双引号,则字段中的双引号应原创 2012-11-02 12:35:50 · 1412 阅读 · 0 评论 -
c#接口和抽象类的区别
一、抽象类: 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。二、接口: 接口是引用类型的,类似于类,和抽象类的相似之处有三原创 2012-11-23 21:48:41 · 647 阅读 · 0 评论 -
C#“元数据”什么意思
所谓元数据.其实是指由微软所封装的类..这些类你可以查看.但是无法修改。 元数据是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述。将您的代码编译为 PE 文件时,便会将元数据插入到该文件的一部分中,而将代码转换为 Microsoft 中间语言 (MSIL) 并将其插入到该文件的另一部分中。在模块或程序集中定义和引用的每个类型和原创 2012-12-12 21:48:09 · 2063 阅读 · 0 评论 -
关于VS中Com组件
一、关于Com组件 COM component(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便原创 2012-12-22 11:24:48 · 4442 阅读 · 0 评论 -
C#Math小结
1、向上进位取整。Math.Ceiling例如: Math.Ceiling(32.6)=33; Math.Ceiling(32.0)=32;2、向下舍位取整。Math.Floor例如: Math.Floor(32.6)=32;3、取指定位数的小数。Math.Round例如:Math.Round(36.236,2)=36.24; Math.Round原创 2013-01-20 14:05:28 · 1709 阅读 · 0 评论 -
C#全局变量
如何得到当前登录用户Id?创建一个保存全局变量的Globals类,声明一个全局变量CurrentId(public static int CurrentId ;);登陆的时候将登录用户的Id保存在CurrentId中;这样在任何一个类中就都可以访问Globals.CurrentId来得到当前的主键Id了。原创 2013-02-11 18:29:43 · 1037 阅读 · 0 评论 -
静态与非静态区别
静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量。在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类;其次,它防止在类的内部声明任何实例字段或方法。 静态类是自C# 2.0才引入的,C# 1.0不支持静态类声明。程序员必须声明一个私有构造器。私有构造器原创 2013-06-09 21:19:39 · 1134 阅读 · 0 评论 -
输入法限制
private void textBox1_TextChanged(object sender, System.EventArgs e){string pat=@"[\u4e00-\u9fa5]{1,}$";Regex rg=new Regex(pat);Match mh=rg.Match(textBox1.Text);if(!mh.Success)return;Mes原创 2013-05-06 21:26:55 · 1104 阅读 · 0 评论 -
c#正则表达式总结
C#中正则表达式 1.匹配HTML标记的正则表达式:.*| 例如:2. 正整数: ^[0-9]*[1-9][0-9]*$3.负整数: ^-[0-9]*[1-9][0-9]*$4.整数: -?/d+$5.正浮点数: ^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$6.原创 2013-06-04 21:55:30 · 964 阅读 · 0 评论 -
附加进程调试
有些时候碰到自己开发的程序嵌入到别人的框架中,而在接口的地方出了问题,而又不方便将自己的模快加入到别人的工程中【有很多相关的文件,还有mster页面等】,这个时候VS的附加到进程调试变得不可或缺了,过多介绍的东西就不多说了,直奔主题1、拷贝project1的dll及相关的xap及页面文件到对应的project2工程中,不必加入到工程中。2、启动Project2工程【Ctrl+F5】转载 2013-07-11 18:34:10 · 1843 阅读 · 0 评论 -
登录问题(1)
网站用户单点登录系统解决方案1 背景 在网站建设的过程中,多个应用系统一般是在不同的时期开发完成的。各应用系统由于功能侧重、设计方法和开发技术有所不同,也就形成了各自独立的用户库和用户认证体系。随着网站的发展,会出现这样的用户群体:以其中的一个用户为例,他(她)使用网站的多个应用系统,但在每个应用系统中有独立的账号,没有一个整体上的网站用户账号的概念,进入每一个应转载 2013-07-24 17:54:28 · 999 阅读 · 0 评论 -
C#定时器
在C#里关于定时器类有3个:1. 定义在System.Windows.Forms里实现在用户定义的时间间隔引发事件的计时器。此计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用。命名空间:System.Windows.Forms程序集:System.Windows.Forms(在 system.windows.forms.dll 中)备注:Timer 用转载 2013-08-04 10:36:33 · 1479 阅读 · 0 评论 -
VS08升级
VS2008正式版序列号CDKEY:PYHYP-WXB3B-B2CCM-V9DX9-VDY8T 在开始>设置>控制面版>添加或删除程序>卸载Microsoft Visual Studio 2008(也可以去360软件管理卸载)>出现卸载界面>点击"Next“>输入上面CD-key ->稍等片刻便出现成功画面即可完美将试用版升级成为正式版 。没有过期时,不要卸载升级,否则会卸载掉软件转载 2013-09-17 23:05:55 · 899 阅读 · 0 评论 -
防止.NET程序集被破解办法
.net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机代码并交付CPU执行。中间语言很容易被反编译,所以研究下如何有效的保护dll文件。我大致的方法为 :强签名+混淆+加密。强签名强命名程序集,可以确保你的程序集唯一,而不被篡改、冒用等;即使相同名字的程序集如果签名也会不同。如果(添加了强名称的)项目中引用了其他没有源码原创 2014-01-21 12:55:43 · 3752 阅读 · 0 评论 -
抽象工厂的代码实现示例
public abstract class AbstractFactory { public abstract IStuInfor CFStuInfor(); }public class CFactory:AbstractFactory { public override IStuInfor CFStuInfor()原创 2012-09-10 09:51:28 · 1115 阅读 · 1 评论 -
三层体系结构的概念
用户界面表示层(USL) 业务逻辑层(BLL) 数据访问层(DAL) BLL将USL与DAL隔开了,并且加入了业务规则各层的作用 1:数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务. 2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操原创 2012-09-08 21:49:21 · 1846 阅读 · 0 评论 -
.NET中一些概念理解
公共语言运行库的工作方式 要想了解.Net Framework托管,我们需要从.Net的工作机制说起,.Net实际是上将你编写的代码编译成中间语言(MSIL),也就是说不管你使用C#还是VB.Net,都会编译成为一个MSIL,而不是本地机器码(根据特定的操作系统与特定的硬件环境生成的二进制代码)。 在运行的程序的时候,首先必需启动.Net Framework(随操作原创 2012-09-06 10:31:31 · 823 阅读 · 0 评论 -
基于C#Winform的简易聊天程序(1)
1.首先,我们需要写一个选择发送文件的方法,这里使用了最常见OpenFileDialog方法,用于选取需要发送的文件.string filePath = null; //文件的全路径 string fileName = null; //文件名称(不包含路径) //选择要发送的文件 private void btnSelectFile_Click(object sende转载 2012-06-05 19:34:54 · 1869 阅读 · 0 评论 -
实现记录和查看用户的系统登录和退出历史
一、首先定义3个全局变量: 在登录窗体FrmLogin.cs定义3个全局变量登录成功和退出的用户Uid (public static string Uid;) --在第三章密码修改功能的时候已经定义了登录成功和退出的时间Time (public static DateTime Time;) 3. 登录情况Situation-2种包括"登录"和"退出" (p原创 2012-06-05 20:28:54 · 2874 阅读 · 0 评论 -
C#处理数学运算问题
对数学关心的朋友,可以看看这篇文章。我们知道对诸如方程求根或数值积分的问题,即使算法编出来,每次也需要编一个待求根或数值积分的函数,这样做真是繁琐,效率非常低。我这里用C#.net(beta2)编了一个一元实函数类,使问题简化了不少。比如f(x)=cos(x)^3这样一个函数,用我的方法可表示为Function f=Function.Cos^3就可以了。为求f(1),可按下面方式f.F原创 2012-05-22 10:36:57 · 1985 阅读 · 0 评论 -
c# 杂记
1.string.Empty与null 当你只定义一个str而不为其分配内存时用string str=null,但是在接下来你使用它之前必须为它赋值如str=“xxxx”也就是为它初始化。而string str= string.Empty是定义和初始化放在了一起它实际是等价于string str=null;str="";具体使用时,如果你确定在使用前会给str赋值就用string st原创 2012-06-17 05:10:52 · 584 阅读 · 0 评论 -
组件和控件的区分
在编程领域内,组件其实就是一个可以复用并可以和其它对象交互的对象,而控件就是一个提供或实现了图形界面的组件。控件通常是指设计时所见即所得、运行时处理图形显示和接受用户交互输入的那些组件。当你开发一个组件,你需要从具有丰富的界面和交互机制的父类去继承,那么你做出来的当然就是控件了。如果你发觉根本不需要继承那写交互机制,只要继承更高层的,那么你就不是在开发控件了(而是在开发组件原创 2012-08-03 15:14:49 · 2174 阅读 · 0 评论 -
C# BP神经网络
using System; namespace KarstModel { /// /// BP3Layer 的摘要说明。 /// public class BP3Layer:IModel { public BP3Layer() { // // TODO: 在此处添加构造函数逻辑 // } //private int nargOut=6;转载 2012-08-05 15:54:04 · 2998 阅读 · 0 评论 -
C#(VS2008)解决WinForm应用程序打包安装问题
1:新建安装部署项目打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定。2:安装向导 点击下一步,或者直接点击完成。3:开始制作安装向导完成后即可进入项目文件夹:双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.一般添加 .exe文件就可以把其关联的库文件都加载进原创 2012-08-09 11:38:13 · 1148 阅读 · 0 评论 -
.NET基础知识
1、.NET是一个平台,一个抽象的平台的概念。 .NET平台其本身实现的方式其实还是库,抽象层面上来看是一个平台。个人理解.NET核心就只是.NET Framework。.NET Framework包括了两个关键组成元素:Common Language Runtime公共语言运行时--提供内存管理、代码安全性检测等等功能。.NET Framework Class Library.原创 2012-08-12 10:16:45 · 646 阅读 · 0 评论 -
依赖倒置原则--针对接口编程
案例:针对司机开汽车编写c#程序体现依赖倒置原则常规思路1.首先想到的是定义司机和汽车类,司机具有drive行为,即要在司机类里定义drive方法,汽车有run行为,即要在汽车类里定义run方法2.考虑甲司机开宝马,乙司机开奔驰,所以首先想定义抽象类Car,然后宝马车和奔驰车继承并实现实现:public abstract class Car { pu原创 2012-07-29 16:54:54 · 1211 阅读 · 0 评论 -
餐饮管理系统三层实现步骤
三层:UI表示层;BLL业务逻辑层;DAL数据处理层DAL数据处理层包括:DALFactory抽象工厂,IDAL接口类库,DAL再加上一个Model实体类模型层!总体来说就是:一个应用程序(表示层),5个类库(BLL,IDAL,DAL,DALFactory,Model) 下面给你列下大概步骤(11大步):1. 先创建Windows应用程序,即表示层2. 添加5个类库项目:Mod原创 2012-07-29 22:34:25 · 1926 阅读 · 0 评论 -
C#中的数据库访问工厂
C#已经自己为不同类型数据库的访问做了一个工厂。首先是配置文件:其中的providerName就是指定的不同数据库类型 下面看一下使用工厂的这个类: class DataBaseFac { private DbConnection cnn;//抽象类型 private DbCommand cmd;//抽象类型原创 2012-07-30 15:23:35 · 1960 阅读 · 0 评论 -
C#绘制柱状图
public Image GetBarChart(string title,int width,int height,string ToolNo,int RateLife,int RealLife) //title标题, width绘图区宽 ,height绘图区长, ToolNo柱状图横轴意义,RateLife柱状图1高, RealLife柱状图2高 {原创 2012-08-29 12:56:11 · 6305 阅读 · 0 评论 -
C#DataTable操作
string strSQL1= string strSQL2= conn = DBConn.GetConn(); da1 = new OracleDataAdapter(strSQL1, conn); da2 = new OracleDataAdapter(strSQL2, conn);原创 2012-08-29 13:02:38 · 875 阅读 · 0 评论 -
C#绘制柱状图饼图
private void Form1_Load(object sender, EventArgs e) { string strConn = "SERVER=version-server;DATABASE=WMS;UID=WMSAdmin;PWD=admin"; SqlConnection conn = new SqlConnec原创 2012-08-29 17:41:28 · 3596 阅读 · 0 评论 -
日期时间的计算
在牵涉到查询功能的时候需要显示不同的日期:包括今天、本周、本月、本年、最近一周、最近本月、最近一月、最近一年 /// 根据日期获取当周星期一 /// /// /// public static DateTime StartOfTheWeek(DateTime dt) {原创 2012-09-02 09:55:28 · 642 阅读 · 0 评论 -
DLL和EXE的区别和联系
在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库。现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! 初窥门径:Windows的基石 随便打开一个系统目录,一眼望去就能看到很多扩展名DLL的文件,这些就是经常说的“动态链接库”,DLL是 Dynamic Link Library(即“动态链接库”)的缩写。从Microsoft公司推出首个版原创 2012-09-06 09:18:59 · 2506 阅读 · 0 评论 -
关于程序模块合并及其exe和dll问题的交流总结
DLL全称是Dynamic Link Libaray,即动态链接库,将程序运行所需要的类或方法的实现放在dll中,这样当可执行文件(即.exe文件)需要使用相关的类、方法时从dll中动态地获取,节省了可执行文件在编译、执行时花费的时间。dll比静态库更方便的是不用重新编译全部的.exe文件,只需修改相应的dll的源程序就可以实现功能上的修改。 在C#中,如果新建的工程类型是“Win原创 2012-09-06 09:29:05 · 1365 阅读 · 0 评论 -
PGM格式图像文件读写
private int mWidth; private int mLength; private int mColor; private string mType; private string mComments; private byte[] mData; public void R原创 2014-01-17 00:04:22 · 3889 阅读 · 0 评论