随笔分类 - CSharp Technical
CSharp Technical
摘要:using System;namespace SingletonFunc{ public class Singleton{ private static object obj = new object(); private static Singleton singleton; public static Singleton CreateSingleton() { if(singleton == null){ lock(obj) { ...
阅读全文
摘要:using System;namespace AbstractFactoryFunc{ public abstract class AbstractProductA{ public abstract void ProductAMethod(); } public class ProductA1 : AbstractProductA{ public override void ProductAMethod(){ Console.Write(this.ToString() + " : Method!"); C...
阅读全文
摘要:Every Control in C# is full of events like MouseButtonDown and KeyDown, but what happens when you want an object to fire an event that isn't already built in? This snippet tutorial will go through all the code required to create your own events and custom event handlers.As an example, I'm go
阅读全文
摘要:using System;namespace NotePadTest{ interface IFactor{ IProduct CreateIProduct(); } interface IProduct{ void showMethod(); } class BaseProduct : IProduct{ public void showMethod(){ Console.Write(this.ToString()); Console.Read(); ...
阅读全文
摘要:See alsocopy (command)XCOPYList of DOS commandsrsyncSyncToyRichCopyhobocopy
阅读全文
摘要:在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate。一、为什么Control类提供了Invoke和BeginInvoke机制?关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。1、windows程序消息机制Windows GUI程序是基于消息机制的,有个主线程维护着一个消息泵。这个消息泵让windows程序生生不息。Windows GUI程序的消息循环Windows程序有个消息队列,窗体上的所有消息是这个队列里面消息的最主要来源。这里的while循环使用了GetMessage()这个方法,这
阅读全文
摘要:If you use multithreading to improve the performance your Windows Forms applications, you must be careful to make calls to your controls in a thread-safe way.ExampleAccess to Windows Forms controls is not inherently thread safe. If you have two or more threads manipulating the state of a control, it
阅读全文
摘要:在开发应用中,我们经常用枚举来简化程序。但是让人头的是总得枚举一个别名Alias用于显示或者描述该枚举值,这时候如果我们采用if或者switch的方法来进行判读也可以,但是有点不够优雅。下面来给大家分享一下我的实现方法。今天同事把博客园里的一片文章发给我说和我之前推荐给大家的方法思路基本一样。看后感觉非常不错,于是兴起把我的思路也发布出来与大家一起分享一下。(欢迎一起交流)首先应该想到的是Attribute(在编译期初始化,用于给对象附加信息),这才是他的本职工作。首先我们就可以想到System.ComponentModel命名空间下的DescriptionAttribute,用它来担当记录描
阅读全文
摘要:扩展方法C# code///<summary>/// 根据字符串返回对应枚举类型 ///</summary>///<typeparam name="T">对应枚举类型</typeparam>///<param name="source">字符串</param>///<returns></returns>publicstatic T GetEnumByValue<T>(thisstring source) { if (typeof(T).BaseTy
阅读全文
摘要:上一篇文章为自定义类实现了foreach的功能,但实现过程中要实现IEnumerator接口(包括MoveNext、Reset函数和Current属性)以便GetEnumerator函数能获取枚举数,有点复杂,有点繁琐。已经知道:主要一个类实现了GetEnumerator函数就能foreach,而实现IEnumerator接口只是实现 GetEnumerator函数的其中一个办法,也就说还有其他办法实现GetEnumerator函数了?是的,C#2.0为我们提供了一种很简单的方 法来实现GetEnumerator函数,那就是使用迭代器!(还记得吧,C#里的迭代器和C++里的是不同的)下面是来自
阅读全文
摘要:1.为什么需要自定义节点为了增加应用程序的可移植性,通常网站需要配置一些自定义的节点,例如:文件上传的路径等,再深入的应用,可以定义工厂方法需要创建的类。2.configSections使用方法configSections节点下定义自定义节点可以帮我们实现我们自己的节点。首先定义自己的节点,定义方法如下:<configSections><sectionGroupname="sectiongroupname"><sectionname="sectionname"type="configurationsectionha
阅读全文
摘要:App.Config详解应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。配置文件的根节点是configuration。我们经常访问的是appSettings,它是由.Net预定义配置节。我们经常使用的配置文件的架构是象下面的形式。先大概有个印象,通过后面的实例会有一个比较清楚的认识。下面的“配置节”可以理解为进行配置一个XML的节点。1.向项目添加app.config文件:右击项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”;如果项目以前没
阅读全文
摘要:如何创建强命名程序集===================1. 在Visual Studio中的class library工程上点右键, 选择properties.2. 选择左边的Signing选项卡.3. 勾选Sign the assembly复选框. 在下拉列表中选择<New...>.4. 在弹出的对话框中给snk文件起一个名字. 按OK.5. 程序集强命名完成.如何查看强命名程序集的public key token=========================有时候你需要在web.config文件中或者其他地方引用自己写的强命名程序集, 你需要写入像下面这样的fully
阅读全文
摘要:项目生成事件 将dll文件拷贝到指定的位置xcopy $(TargetPath) ..\..\..\..\ExecutorsDLL\ /yxcopy $(TargetPath) : 拷贝命令..\..\..\..\ExecutorsDLL\: 目的地路径/y :粘贴命令s
阅读全文
摘要:原文:Solution (.Sln) File关于VS2008和VS2010中.sln文件(解决方案文件)的介绍MSDN中只有英文版,现翻译供读者参考,希望对您有帮助。水平有限文中难免有错误,欢迎大家指正,拜谢~解决方案就是Visual Studio中用来组织项目的结构。他的作用类似于VB6.0中的Windows程序组(.vbg)文件以及VC6.0中的项目工作区(.dsw)文件。解决方案将项目的状态信息保存在.sln文件(该文件是基于文本,而且是可共享的)和.suo文件(该文件是二进制的,而且是解决方案中可选的)中。更多关于.suo的信息请查看解决方案中用户可选.suo文件。如果你的VSPac
阅读全文
摘要:在C#中可以对整型运算对象按位进行逻辑运算。按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位。C#支持的位逻辑运算符如表2.9所示。运算符号意义运算对象类型运算结果类型对象数实例~位逻辑非运算整型,字符型整型1~a&位逻辑与运算2a & b|位逻辑或运算2a | b^位逻辑异或运算2a ^ b<<位左移运算2a<<4>>位右移运算2a>>21、位逻辑非运算位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1;如果
阅读全文
摘要:Invalidate marks the control (region, or rect) as in need of repainting, butdoesn't immediately repaint (the repaint is triggered when everything else hasbeen taken care of and the app becomes idle).Update causes the control to immediately repaint if any portions have beeninvalidated.Refresh cau
阅读全文
摘要:Control.Invalidate 方法使控件的特定区域无效并向控件发送绘制消息。重载列表使控件的特定区域无效并向控件发送绘制消息。受 .NET Framework 精简版的支持。[C#]public void Invalidate();[C++]public: void Invalidate();使控件的特定区域无效并向控件发送绘制消息。还可以使分配给该控件的子控件无效。[C#]public void Invalidate(bool);使控件的指定区域无效(将其添加到控件的更新区域,下次绘制操作时将重新绘制更新区域),并向控件发送绘制消息。受 .NET Framework 精简版的支持。[
阅读全文
摘要:很多朋友都会在开发WinForm中遇到Label要显示的内容太长,但却不能换行的问题.这里我总结了几种方法,供大家参考。第一种是把Label的AutoSize属性设为False,手动修改Label的大小.这样的好处是会因内容的长度而自动换行,但是当内容的长度超过所设定的大小时,多出的内容就会无法显示.因此,这种方法适合于基本确定内容长度的时候使用。第二种是把Label的Dock设为FILL,同时将AutoSize属性设为False,这种方法可将上面所说的缺点修正,但是同时Label会将其它控件的位置霸占,影响布局.因此,在使用该方法时,最好给Label加上个Panel或GroupBox控件。第
阅读全文
摘要:一、C#委托类委托类似于函数指针,但函数指针只能引用静态方法,而委托既能引用静态方法,也能引用实例方法。委托使用分三步:1、委托声明;2、委托实例化;3、委托调用。例程一:程序代码usingSystem; namespace委托 { delegateintNumOpe(inta,intb);//第一步:委托声明 classClass1 { staticvoidMain(string[]args) { Class1c1=newClass1(); NumOpep1=newNumOpe(c1.Add);//委托实例化,注意参数是要使用的参数名,且不带括号 Console.WriteLine(p1(1
阅读全文

浙公网安备 33010602011771号