C#入门
文章平均质量分 83
sunbingzibo
这个作者很懒,什么都没留下…
展开
-
C# 实现png动画
看一个同做的动画,界面是非常的漂亮,原创 2014-09-30 10:49:05 · 2218 阅读 · 0 评论 -
转贴经典例子:弱引用 WeakReference
在程序设计中我们经常会进行一些全局缓存设计,诸如使用静态或者全局根字段来引用某个对象,以便一次创建多次使用。如: class BigData { } class Program { static BigData cache; public static BigData DataCache { get { if (cache== n转载 2007-10-23 00:25:00 · 1913 阅读 · 0 评论 -
SharpDevelop学习笔记--什么是codon,与codon的创建过程
codon只是一个xml文件(addin文件中)的一个节点,这个节点须有唯一的名字以下是一个codon的创建过程,并不包括condtion以下是调用的程序正常执行步骤的记录public class Addin...{ //从addin文件中分析出extension public void Initialize(string fileName) ...{原创 2007-09-28 08:56:00 · 1629 阅读 · 0 评论 -
SharpDevelop学习笔记--什么是Addin
像这样根结点是Addin的一个XML文件就是AddinAddIn name = "Typed Collection Wizard" author = "Mike Krueger" copyright = "GPL" url = "unknown" description = "Creates a typed collection" version = "1.0.0"> Runt原创 2007-09-28 08:52:00 · 1203 阅读 · 0 评论 -
绘制 sigmoid函数
//用来计算从-4到4之间的sigmoid函数值的静态函数public class Uitility...{ public static PointF[] GetPoints() ...{ PointF[] mypos=new PointF[400]; int j=0; for(double i=-4;i4;i+=0.02)原创 2007-09-30 02:44:00 · 3486 阅读 · 0 评论 -
用锁文件的方法来实现只有一个实例运行
public class Program ...{ public Program() ...{ } private const string lockfile="mylock.txt"; public static void Main() ...{ FileStre原创 2007-09-28 10:26:00 · 810 阅读 · 0 评论 -
匿名方法的小例子
在 2.0 之前的 C# 版本中,声明委托的唯一方法是使用命名方法。C# 2.0 引入了匿名方法。要将代码块传递为委托参数,创建匿名方法则是唯一的方法。 /// /// 在WindowsFrom中使用匿名函数/// public class TestForm : System.Windows.Forms.Form{ public TestForm() {原创 2007-10-22 22:29:00 · 998 阅读 · 0 评论 -
用一个神经元来实现and表
看到教材上有这么一个例子,先做下来,练练手,很简单的代码 //用一个神经元来实现这个功能//这个二维数组中,数字的意义为/**//*bias,first input,second input,target output1, 1, 1, 11, 1, -1,原创 2007-09-30 04:24:00 · 990 阅读 · 0 评论 -
SharpDevelop的addin结构
像这样的以addin这根结点的xml文档就是一个addin author = "Mike Krueger" copyright = "GPL" url = "unknown" description = "Creates a typed collection" version = "1.0.0"> label = "Typed Collection"原创 2007-09-21 14:16:00 · 1280 阅读 · 0 评论 -
用自定义属性实现必需字段的检查
在持久化类时,一个对象需要保存到数据库中表,数据库中的表在设计时会根据一些设计范式的要求定义一些必要的字段这样,在持久化时,就必须检查一下这些与数据库映射字段是否已经赋值了,如果没有,则不能保存到数据库中,这时应弹出对话框来提示,以防止错误异常的发生.using System;using System.Collections.Generic;using System.Text;using原创 2007-10-09 09:52:00 · 1112 阅读 · 0 评论 -
使用WM_CHAR消息来限制用户的输入
在做管理系统的时候,经常要限制用户的输入,如,只可以输入数字,等等net 下限制用户输入,很多人是在键盘,或 textBox 的 TextChanged 事件里这样做1.不能限制用户的粘贴2.严重干扰数据绑定等操作3.有时还需要备份原始数据进行还原限制输入的时机是在,windows 消息 WM_CHAR 触发时但.net 恰恰没有提供这个消息的事件映射. 继承TextBox 重写 WndP原创 2007-10-14 17:48:00 · 1449 阅读 · 0 评论 -
使用API函数查找窗体并激活
生成程序时,有时需要限制用系统中只有一个实例在运行,这就需要我们在检测到系统中已有程序的实例在运行时,将这个已经在运行的实例,激活并显示在用户面前这里主要用到了FindWindow ,和 SetForegroundWindow这两个函数 /// /// The FindWindow API/// /// the class name for the window to searc原创 2007-10-14 17:56:00 · 6207 阅读 · 0 评论 -
静态方法与非静态方法区别
C#静态方法与非静态方法的区别不仅仅是概念上的,那么他们有什么具体的区别呢?让我们通过本文向你做一下解析。 C#的类中可以包含两种方法:C#静态方法与非静态方法。那么他们的定义有什么不同呢?他们在使用上会有什么不同呢?让我们来看看最直观的差别:使用了static 修饰符的方法为静态方法,反之则是非静态方法。 下面我们分四个方面来看看C#静态方法与非静态方法的差异:转载 2014-09-29 16:22:13 · 828 阅读 · 0 评论 -
C#调用C++写的dll,C++调用C++的dll
C#语言使用方便,入门门槛较代,上手容易,并且语法与C,java有很类似的地方,IDE做的也好,通用性好,是MS下一代开发的主要力量.但是其开源代码较少,类库不是十分完美,在架构方面还有一些需要做的工作.C++写的程序占用内存较小,直接对内存或者文件操作,因此一些关键的步骤或者一些最内层的循环在一定程序上还需要依赖C++.下面我做一些简单的例子第一步,用C++做一个可以导出函数的dll原创 2007-07-25 18:07:00 · 15621 阅读 · 7 评论 -
如何使用asp.net 1.1中的webcontrol中的TreeView
第一步修改web.config ...................................第二步,在想使用此控件的页面加入以下语句 namespace="Microsoft.Web.UI.WebControls" assembly="Microsoft.Web.UI.WebControls"%> runat="原创 2008-01-15 09:52:00 · 941 阅读 · 0 评论 -
使用HashTable来实现树的查找
设计模式中,讲了一个组合模式,并给出了例子,但是应用中还是有一些不方便的比如,树的遍历与查找,我最近在一个程序中遇到了一个树形问题,使用了组合模式,但是查找节点的时候,遇到了一点困难,所以想一个办法来解决,就是使用hash表的方法来解决,上下文(程序中使用的是.net framework1.1),为了兼容性,所以没有使用泛型:-需求1.实现一个倒置的树,能从一个节点,找到他的父节点,及他的子节原创 2008-01-08 16:32:00 · 1240 阅读 · 0 评论 -
使用Nunit+Access做单元测试时连接已经关闭
今天在使用Nunit+Access做单元测试时,本来正常的代码突然间不能正常通过在VS2005 Express中调试则可以正常通过,正在那闷中发现我打开了Access,结果关了Access代码则能正常通过了原创 2007-12-21 16:05:00 · 760 阅读 · 0 评论 -
sharpdevelop中如何加载addin文件
Sharpdevelop中的addin文件是一个xml文件,SD的作者在其中设置了一些特定的规则,来描述菜单,工具栏,视图的创建及dll的加载,作者创建了一个addin类(代码存在于addin.cs)来完成对addin文件的操作addin文件其中包含了,作者,版本,描述,版权等等各个方面的信息, addin的一个例子 AddIn name = "SharpDevelop原创 2007-11-24 12:13:00 · 1570 阅读 · 0 评论 -
如何进行安全的类型转换
通过反射给控件,或者对象的的属性设计值的时候,会遇到类型的转换问题如果属性的类型只有几种的情况,只用switch就可以了但是如果属性类型的情况比较多,那么就得找其它办法了.Binding类中给我们一个比较安全的办法object instancevalue;//要给控件绑定的对象的值Control bindcontrol;System.Type controltype = bindcontr原创 2007-11-05 17:06:00 · 2068 阅读 · 0 评论 -
为什么databindings在绑定到属性值的时候,不能自动更新
在面向对象设计系统的时候,在设计的类的生成对象的后,为了呈现给客户,要绑定对象的属性到窗体,这时我们可以使用控件的databindings方法,如textBox1.DataBindings.Add("Text", cat, "Name");这样在textbox1中输入相应的信息后,cat的Name属性就会自然发生变化,这时,我们可以将这个对象持久化到数据库中,或者文本,及本地资源中但是一般原创 2007-11-05 14:40:00 · 8705 阅读 · 2 评论 -
sql server的连接字符串
initial catalog=Northwind; Data Source=localhost; Connection Timeout=30; User Id=MYUSER; Password=PASSWORD; Min Pool Size=20; Max Pool Size=200; Incr Pool Size=10; Decr Pool Size=5;当使用window身份认证模式时,原创 2007-09-21 10:57:00 · 1728 阅读 · 0 评论 -
动态创建控件
public Form1() ...{ InitializeComponent(); ar=new ArrayList(); posx=10;posy=10; } private ArrayList ar;//放控件组的arraylist private int posx原创 2007-09-19 09:47:00 · 790 阅读 · 0 评论 -
使用Process调用dos命令
The simplest way to run a command is:System.Diagnostics.Process.Start ("cmd", @"/c copy c:/myfolder/*.* c:/mybackup");You can get creative using System.Diagnostics.ProcessStartInfo... for instance转载 2007-08-11 16:04:00 · 1303 阅读 · 0 评论 -
如何在没有标题栏的情况下移动窗体
一般情况下我们都经过拖动窗体的标题来达到改变窗体地位置的,但时有时为了做了特殊效果,不得不去除窗体的标题栏,这样如何改变窗体的位置就成了问题下在就介绍一种方法来达到这种目的 移动窗体#Region "移动窗体" Private x0, y0 As Integer Private Sub Form1_MouseMove()Sub Form1_MouseMove(ByVal s原创 2007-08-12 12:23:00 · 906 阅读 · 0 评论 -
在注册表中找到你的dns服务器
从注册表中找到dns服务器的方法 public class cxyDns...{ public static string[] GetDns() ...{ RegistryKey m_machine=Registry.LocalMachine; string m_dnskey=@"SYSTEMCurrentControlSetServicesTc原创 2007-08-09 20:31:00 · 3845 阅读 · 0 评论 -
对象的序列化与反序列化,以xml,二进制流的方式,soap方式序列化对象
System.Runtime.Serialization.Formatters.Soap 命名空间包含SoapFormatter 类,该类用于以SOAP 格式将对象序列化和反序列化。生成使用此命名空间中的类型的应用程序时,必须引用System.Runtime.Serialization.Formatters.Soap.dll 程序集。 using System;using Sys原创 2007-08-06 23:45:00 · 2594 阅读 · 0 评论 -
XmlDeclaration.Standalone 属性
在SharpDevelop中发现的Standalone属性,这是msdn上的解释获取或设置独立属性的值。如果 XML 文档所需要的所有实体声明都包含在文档内,则有效值为 yes,或者如果需要外部文档类型定义 (DTD),则为 no。如果 XML 声明中没有独立属性 (Attribute),该属性 (Property) 将返回 String.Empty。下面的示例创建一个 XmlDecl原创 2007-07-18 14:32:00 · 2384 阅读 · 0 评论 -
Subversion安装手记转自嘟嘟老窝
Subversion安装手记原文地址:http://www.duduwolf.com/post/setting_up_subversion.aspSTEP 1:下载和安装 首先在Subversion的官方网站去下载windows安装包,最新版是1.3.1,可惜在项目树上只更新到了1.3.0的二进制包。下载后安装在本地机器上,这里注意的是最好将安装目录指定为纯英文名目录,安装在中文目转载 2007-07-16 22:36:00 · 1275 阅读 · 0 评论 -
TreeView控件
使用 Windows 窗体 TreeView 控件时,一个常见任务是确定单击了哪个节点并相应地予以响应。确定单击了哪个 TreeView 节点使用 EventArgs 对象返回对已单击的节点对象的引用。通过检查 TreeViewEventArgs 类(它包含与事件有关的数据),确定单击了哪个节点。 protected void treeView1_AfterSelect (obje转载 2007-07-13 11:02:00 · 688 阅读 · 0 评论 -
什么是publickeytoken及publickeytoken的作用
作者: 黄志彬(在dev-club上俺叫笨猫猫)本人在看一些例子的时候,总是能看到配置文件中有一些publickeytoken的字样,本人不太明白,所以在网上搜了一下,看到msdn里边有人做了解释,恍然大悟,为了感谢作者,本人在这里转载一下.原文地址:http://www.microsoft.com/china/community/program/originalarticles/techdo转载 2007-07-14 10:01:00 · 13200 阅读 · 0 评论 -
做个例子证实一下:tcp协议
面像连接地例子 使用同步套接字,一个server对应于一个client同步套接字的解释: 在通过Socket进行连接、接收、发送操作时,客户机或服务器会暂停当前工作,处于等待状态,即一直等到有数据时才继续执行下面的语句。一般在阻塞方式下使用这种方式。可见,同步套接字适用于网络传输量不太大的情况。当网络传输量很大时,长时间的等待可能会让用户无法忍受。在这个例子中,使用byte数组做为数原创 2007-08-10 01:10:00 · 997 阅读 · 0 评论 -
乱七八糟的调用,asynccallback,delegate,thread
private void button2_Click(object sender, System.EventArgs e)...{ AsyncCallback m_test=new AsyncCallback(TestSleep); AsyncCallback m_wakeup=new AsyncCallback(WakeUp); ar=m_test.BeginInvoke(原创 2007-08-10 02:41:00 · 2072 阅读 · 0 评论 -
SCTP 协议与SocketType.Seqpacket及微软关于sctp的支持
Seqpacket使用的是SCTP 协议SCTP的发展历史和前景: SCTP实际上脱胎于TCP协议,很多协议过程,如拥塞控制,都和TCP如出一辙。但是一开始SCTP定位在信令传输,因此对实时性和安全行作了一些考虑,克服了TCP的一些固有缺陷。其诞生之初叫简单控制传输协议,基于UDP。历经13个版本的草案发展,形成RFC的时候,已经绝对不是一个简单协议了,各大通信公司都进行了多次BAKE OFF原创 2007-08-09 22:58:00 · 3387 阅读 · 0 评论 -
自已动手做一个最简版的Nhibernate
最近动手做一个项目,结果项目延期了,自己分析一下,大部分的时间花在了与项目中数据的持久化那一块了,觉得自己有点吃亏,原因是自己对Nhiberate不太熟,经常出错,并且,一个很小的项目,所有的东西加起来都不到1M,却因为引用了Nhibernate,加上Nhiberante必须用的几个DLLL很整个工程变得很大,觉得有点过分,所以想来想去,就决定做一个自己版的Nhiberate,这是第一个版本的代码原创 2007-09-11 09:51:00 · 783 阅读 · 0 评论 -
如何在线程中创建可以响应事件的窗体
要在主程序中使用线程创建一个窗体,这个窗体要能接受事件但是使用如下方法创建的窗体,无法响应用户输入的事件,AsyncCallback myformshowcallback = new AsyncCallback(CreatAndShowForm); myformshowcallback.BeginInvoke(null, null, null);private void CreatAndSho原创 2007-09-08 21:41:00 · 1105 阅读 · 0 评论 -
如何使用反射取得对象的属性值
using System;using System.Collections.Generic;using System.Text;using System.Reflection;namespace learn.MyReflector...{ public class Task ...{ private int m_id; private DateTime m_a原创 2007-09-11 01:25:00 · 1272 阅读 · 0 评论 -
使用Cassini取代IIS做为Web服务器(这一过程中必要注意的事情)
在远程访问 Cassini中的应用程序会遇到403错误出现这种情况是因为,Cassini中Request.cs文件中第93行中以一段代码,这一段代码就限制了Cassini只能用于本地,将这一段代码注释掉之后,就可以Cassini服务于远程机器了 // Limit to local requests only if (!_conn.IsLocal) {原创 2007-09-05 21:24:00 · 2432 阅读 · 0 评论 -
C#中使用自定义的纸张大小打印文档
using System.Drawing.Printing;using System.Drawing;private void Test()...{ PrintDocument m_pdoc = new PrintDocument(); PaperSize psz = new PaperSize(); m_pdoc.PrinterSettings.PrinterName =原创 2007-08-23 13:41:00 · 3756 阅读 · 1 评论 -
如何使用wix做出中文的安装包
我们可以使用wix做出非常漂亮的安装文件,比如大名鼎鼎的SharpDevelop就是用它做的安装文件,昨天下载下来,试用了一下,感觉非常好,个人感觉比VS自带的安装文件清晰(可能是我自己不会使),但是使用SharpDevelop生成的msi的文件都是英文的如果在wxs中加入中文的话,生成的安装文件就成了乱码了,这可大大妨碍了工具的流行.结果在人家的官方网站一看,人家提供了各种不同语言:这是官方原创 2007-08-21 19:19:00 · 11203 阅读 · 1 评论 -
在nhibernate 1.2 中使用sqlite时应注意sqlite的ado.net的提供者
Finisar.SQLite.SQLiteConnection情况:我想存储少量的数据,在数据库,2,并且使用nhibernate nhibernate对access的支持算不上好,所以我就选择使用了sqlite,但是同样的代码在ms sql server上能通过但就是就对sqlite通过不过,通过一步,步地跟踪发现sqlite的构造函数是如下的情况public SQLiteDri原创 2007-08-19 21:31:00 · 2496 阅读 · 0 评论