
C#
whyabc
这个作者很懒,什么都没留下…
展开
-
C#异步编程
同步方法和异步方法的区别同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作异步编程概览.NET Framework 允许您异步调用任何方法。定义与您需要调用的方法具有相同签名的委托;公共语言运行库将自动为该委托定义具有适当签名的 BeginInvoke 和 EndInvoke 方法。Be...2013-10-23 21:12:00 · 97 阅读 · 0 评论 -
插件应用,使用反射动态调用类成员:InvokeMember
/// <summary>/// 调用插件的方法/// </summary>/// <param name="pluginIndex">插件索引</param>/// <param name="functionName">方法名称</param>/// <return2009-09-03 16:51:00 · 154 阅读 · 0 评论 -
C#操作使用xsd的xml文件时XPath表达式不正确的问题
原本操作没有用xsd的xml文件时,XPath可以找到节点,但给xml文件关联上.xsd文件(Schema规范),就出错了,根据Xpath找不到节点了! 问题出现时的Plugin.xsd文件<?xml version="1.0" encoding="utf-8"?><xs:schema id="Plugin" targetNamespace="ht...2009-09-04 16:59:00 · 143 阅读 · 0 评论 -
菜单手动添加快捷键
char []sepc = new char[]{'+'};string str = "Alt+A";string[] shortCutKeys = str.Split(sepc);Keys keys = Keys.None, key = Keys.None;foreach (string shortCutKey in shortCutKeys){ key = (K...2009-09-04 18:00:00 · 118 阅读 · 0 评论 -
GetManifestResourceStream得到的Stream是null的解决
用GetManifestResourceStream获取的资源要保证包含在工程中,不包含在工程中即使在同一目录下也没用。包含在工程中以后把该文件的“属性”中的“生成操作”改为“嵌入的资源”。就可以用了通过GetManifestResourceNames(好像是这个名字)把所有的名字都取出来,然后看看有没有你要的。一般是Assembly名.类名.Manifest.Resource。 //...2009-09-04 18:03:00 · 132 阅读 · 0 评论 -
VS2005打开VS2008项目
1、去掉源代码目录代码的只读权限。2、修改.sln中的Microsoft Visual Studio Solution File, Format Version 10.00# Visual Studio 2008 为修改为Microsoft Visual Studio Solution File, Format Version 9.00# Visual Studio 2005 此时可以打开项目了...2009-09-08 12:14:00 · 101 阅读 · 0 评论 -
C#的多线程机制探索
http://www.vchome.net/dotnet/dotnetdocs/dotnet1.htm http://www.yaosansi.com/post/1344.html2009-09-09 17:49:00 · 99 阅读 · 0 评论 -
System.Net.WebException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集...
在windows mobile中访问web service时出现以下错误:System.Net.WebException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集 ---> System.Net.Sockets.SocketException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集位于 System.Net.Sockets.Socket...2010-06-18 17:01:00 · 1224 阅读 · 0 评论 -
VS2005加速
关闭起始页工具 -> 选项环境 -> 启动,改变启动时的属性为 显示空白环境 。关闭欢迎页面在 Microsoft Visual Studio 2005 的快捷键上按鼠标右键,选属性,在目标的最后,加上参数 /nosplash (如:devenv.exe" /nosplash)。关闭动画 工具 -> 选项 -> 环境,把 动画环境工具 取消关闭追踪修订 工具 ...2010-06-22 15:53:00 · 88 阅读 · 0 评论 -
.NET上根据字符串动态创建控件
首先,利用System.Type.GetType方法,获得字符串中指定的控件的类型实例。这里需要注意这个字符串的语法,根据msdn的解释:1.按名称和签名隐藏会考虑签名的所有部分,包括自定义修饰符、返回类型、参数类型、标记和非托管调用约定。这是二进制比较。2.对于反射,属性和事件按名称和签名隐藏。如果基类中有同时带 get 访问器和 set 访问器的属性,但派生类中仅有 get 访问...2009-09-02 13:57:00 · 138 阅读 · 0 评论 -
设置ListBox的Value值
public struct MyItem { public string Name; public string Tag; public override string ToString() { return Name; } } My...2010-07-16 10:43:00 · 517 阅读 · 0 评论 -
项目上线与LOG记录
原文:http://www.cnblogs.com/ShaYeBlog/p/3553628.html转载 2014-08-16 21:28:03 · 1507 阅读 · 0 评论 -
ReSharper:著名的VS代码生成工具
Resharper进阶一:简要介绍官方下载地址下载地址 注册码:用户名: User注册码:D9d09DSYJel9IyuDU4btAQwZcbLugUad 面对这样一个问题:为什么.net能够比java更加快速的完成开发?恐怕最大的优势在于Microsoft提供了一个无比强大的IDE。它的强大在于适用于各个层次的开发人员。当你还是一只小小鸟的时候,可以学会dr转载 2014-08-16 20:26:08 · 2955 阅读 · 0 评论 -
6 个重构方法可帮你提升 80% 的代码质量
英文原文:Top 6 Refactoring Patterns to Help You Score 80% in Code Quality 在过去做了不少代码走读,发现了一些代码质量上比较普遍的问题,以下是其中的前五名:臃肿的类: 类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即“单一职责原则”(SRP)的理解。这些类往往会变得很臃肿,是由于不同的且在功能上缺少关联的方转载 2014-11-26 22:09:57 · 620 阅读 · 0 评论 -
C# 委托,Lambda表达式 and Swift 委托,闭包
C#委托是指向方法的类型。委托声明在无方法体的方法前添加关键字delegate。delegate int del(int x, int y);委托调用用方法名称实例化委托,赋值给一个委托类型的变量,然后将变量当作全局方法调用。del obj = new del(delFunc);Console.WriteLine(obj(10, 10)); // print 100Swift委托一般指向协议的原创 2016-05-12 10:39:47 · 1295 阅读 · 0 评论 -
云服务器 ECS Linux 下使用 NTFS 文件系统示例
背景NTFS 为 Windows 操作系统下常用的文件系统。在使用云服务器 ECS Linux 系统时可能会需要读取 NTFS 文件系统中的数据。本文介绍部分使用示例。ECS 服务器 Windows 系统更换为 Linux 系统后,比如更换为 Centos,对于 NTFS 格式的数据盘默认是无法识别的,可以通过 ntfs-3g 进行识别。1. 执行如下命令安装 ntfs-3g:yum instal转载 2017-07-22 20:57:36 · 425 阅读 · 0 评论 -
VC2005工具栏缺少按钮
VC2005工具栏缺少所需按钮,可能是因为环境的设置,工具-->导入和导出设置-->重置所有设置-->下一步-->下一步,选择你当前开发所用的平台,完成。...2010-03-10 22:01:00 · 108 阅读 · 0 评论 -
线程池和文件下载服务器
如果设计一个服务器程序,每当处理用户请求时,都开始一个线程,将会在一定程序上消耗服务器的资源。为此,一个最好的解决方法就是在服务器启动之前,事先创建一些线程对象,然后,当处理客户端请求时,就从这些建好的线程中获得线程对象,并处理请求。保存这些线程对象的结构就叫做线程池。在C#中可以通过System.Threading.ThreadPool类来实现,在默认情况下,ThreadPool最大可建立...2010-03-12 16:14:00 · 124 阅读 · 0 评论 -
类库引用时的版本错误
应用程序或类库在添加引用其它类库的dll时,须设置该dll的复制版本和特定版本属性设置为false,如果复制版本为true,则会将引用的dll再复制一个到本地,有时会出现类库中方法的调用错误。如果特定版本为true,则如果重新生成引用的类库时生成的dll版本和当前引用的dll版本是不同的,会出现无法引用的错误,所以特定版本属性一定要设置为true。如果引用方和被引用方在同一个...2010-03-18 10:54:00 · 181 阅读 · 0 评论 -
{SmartAssembly} – 混淆你的程序集代码使用向导(转)
{SmartAssembly} – 混淆你的程序集代码使用向导(转) 转自:http://www.cnblogs.com/rickie/archive/2009/11/13/1602239.html SmartAssembly 提供了一种用于优化和混淆你的 .NET 程序集,保护你的作品和软件,减小分发包的大小,提高程序性能。 Visual Studio 2003/2005/2...2011-05-05 08:50:00 · 227 阅读 · 0 评论 -
TextBox控件按Enter或Ctrl+Enter键发送消息的实现
// txtSendMsg为消息输入的TextBox控件// txtReceive为消息接收的TextBox控件 // 在txtSendMsg控件的KeyUp事件里处理。 // 按Enter发送 if (isEnter) { if ((e.KeyData == (Keys.Cont...2010-09-25 14:31:00 · 241 阅读 · 0 评论 -
C# 中的委托和事件
C# 中的委托和事件文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错,解决办法是显式的创建一个委托类型的实例(委托变量)。例如:委托类型 委托实例 = new 委托类型(方法名);欢迎浏览本文的后续文章:C#中的委托和事件(续) 引言委托 和 事件在 ...2013-11-15 22:17:00 · 120 阅读 · 0 评论 -
C#中的委托和事件(续)
C#中的委托和事件(续)引言如果你看过了C#中的委托和事件一文,我想你对委托和事件已经有了一个基本的认识。但那些远不是委托和事件的全部内容,还有很多的地方没有涉及。本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器、异常处理、超时处理和异步方法调用等内容。为什么要使用事件而不是委托变量?在C#中的委托和事件中,我提出了两个为什么在类型中使用事件向外部...2013-11-15 22:51:00 · 87 阅读 · 0 评论 -
C#中的多态
封装、继承、多态,面向对象的三大特性,前两项理解相对容易,但要理解多态,特别是深入的了解,对于初学者而言可能就会有一定困难了。我一直认为学习OO的最好方法就是结合实践,封装、继承在实际工作中的应用随处可见,但多态呢?也许未必,可能不经意间用到也不会把它跟“多态”这个词对应起来。在此抛砖引玉,大家讨论,个人能力有限,不足之处还请指正。之前看到过类似的问题:如果面试时主考官要求你用一句话来描述多...2013-11-25 21:54:00 · 111 阅读 · 0 评论 -
C# Stream作用
IO操作基本上需要用到Stream相关的子类,因此这类问题在优快云问得也是比较多。其实对于Stream来说,操作起来比较简单,只要对细节的处理稍微注意一下,相信在使用它的时候也会得心应手。对于Stream相关的问题,大致分如下几类。问题一,基本操作的问题;问题二,编码的问题;问题三,尾部处理问题;问题四,Stream缓存问题;问题五,资源释放问题;最后一个问题,说说如何使用Stream来更新大...2013-12-04 16:38:00 · 111 阅读 · 0 评论 -
解决检索COM类工厂中CLSID为{ }组件失败
检索 COM 类工厂中 CLSID 为 {XXXX-XXXX-XXX-XXXXX-XXX} 的组件时失败,原因是出现以下错误: 80040154。 如以上问题出现,多半是因为COM控件未在目标机器上面注册造成的 解决方法: Resvr32 .net中引用控件的名称 如果注册成功,问题不在出现 但是如果是在x64位的系统中,即使控件注册成功,错误依照提示,是因为大多数...2013-12-10 23:24:00 · 4373 阅读 · 0 评论 -
C#解决MDI窗体闪屏的方法
最近从师兄手上接了一个C#的项目,需要用到MDI窗体,可是每当我显示子窗体的时候会有一次“闪烁”,很明显,看起来非常不爽,查找许久,知道是每次在show()子窗体的时候都会调用子窗体构造函数重绘窗体,其中需要将子窗体的尺寸调整到我在程序中设置的大小,无论我这样设置,这个窗口大小变化总会在show()的时候显示出来,我试过网上说的设置双缓冲、先隐藏窗体等启动之后再显示、借助定时器设置窗体的opac...2013-09-22 23:40:00 · 109 阅读 · 0 评论 -
MDI窗体中打开子窗体时 子窗体的位置固定方法 十分有作用
在MdiForm中,每次打开子窗体时,位置都不固定。 子窗体的位置固定方法:Frm_Member_Delete adddy = new Frm_Member_Delete();adddy.MdiParent = this;adddy.StartPosition = FormStartPosition.Manual;adddy.Show(); 转载自:http://blo...2013-09-22 23:41:00 · 1008 阅读 · 0 评论 -
在邮件标头中找到无效的字符:“周”
今天测试发邮件,发现了个奇怪的问题:在邮件标头中找到无效的字符:“周”刚开始以为是标题的编码问题,于是加了 m_message.SubjectEncoding = Encoding.UTF8; 但问题依旧没有解决,后来又google了半天,有人说是微软的一个bug,就是电脑名不能是中文的,但是我的电脑名是英文的,这个应该可以排除,后来发现了就是如果邮件带附件的话就会出现这个错误,如果...2013-09-26 23:47:00 · 1108 阅读 · 0 评论 -
C#调用耗时函数时显示进度条浅探 .
最近在做一个VSS日志分析工具,使用C#进行开发,在完成了所有功能后,发现,从服务器下载VSS日志非常耗时,因为此,导致工具使用体验不好,所以,准备增加一个进度条。鉴于C#不经常使用,一下子搞个进度条貌似比较难,而且其他的开发任务也在一并进行,所以,昨天一天,并没有多大的进展。今天,是周末,正好可以利用,在查阅了大量网上资料以及实例后,我制作了几个实例,以备后来之用。使用C#显示进度条,涉及到多...2013-11-05 22:43:00 · 176 阅读 · 0 评论 -
多线程:C#.NET中使用BackgroundWorker在模态对话框中显示进度条
我们使用C#.NET编写WinForm程序时,有时候为了实现在模态对话框中实时显示后台操作的进度,这个时候需要借助于多线程操作在子窗体中显示进度条状态,在父窗体中进行后台操作。你可以在Thread类中自己创建两个线程以完成这个操作,不过C#.NET提供了BackgroundWorker对象可以帮助我们非常方便地来实现这个过程。有关Backgroundworker对象的时候我在“C#遍历文件读取W...2013-11-05 22:41:00 · 120 阅读 · 0 评论 -
关于Application.DoEvents()
记得第一次使用Application.DoEvents()是为了在加载大量数据时能够有一个数据加载的提示,不至于系统出现假死的现象,当时也没有深入的去研究他的原理是怎样的,结果在很多地方都用上了Application.DoEvents(),今天看到了关于这方面的一些文章,知道我以前有些用法是不当的,有些地方需要慎用Application.DoEvents()。首先我们先看看在循环比较大的程序中,...2010-10-26 17:59:00 · 122 阅读 · 0 评论 -
Separator Line on Form
label1.AutoSize = false;label1.Height = 2;label1.BorderStyle = BorderStyle.Fixed3D;2010-11-03 15:01:00 · 129 阅读 · 0 评论 -
SqlParameter.Size 属性
列中数据的最大大小(以字节为单位)。默认值是从参数值推导出的。备注设置Size仅影响参数的输入值。此属性不影响返回值和输出参数。Size属性用于二进制和字符串类型。对于SqlType.String类型的参数,Size是指 Unicode 字符的长度。对于SqlType.Xml类型的参数,将忽略Size。对于非字符串数据类型和 ...2011-09-04 21:10:00 · 161 阅读 · 0 评论 -
C# 十六进制颜色与Color对象的互相转换
把十六进制颜色转化为color对象 ColorTranslator.FromHtml("#FF0000") 或 ColorTranslator.FromHtml("Red"); 把color对象转化为十六进制颜色 ColorTranslator.ToHtml(Color.FromArgb(255,255,255)) 或 ColorTranslator.ToHtml(Color.Red);...2012-05-29 16:44:00 · 228 阅读 · 0 评论 -
解决WebService部署时出现的“未能创建类型...”错误
这几天正在学习WebService,但是在部署时老是出现“未能创建类型...”的错误,在IIS7.0下折腾了半天,终于成功部署,现将经验向大家奉上。首先必须先在IIS在创建一个虚拟目录(这个就不用多说了吧),如果这个时候直接在浏览器里调用WebService就会出现上述错误。原因是必须为上面创建的虚拟目录创建单独的应用程序,方法是右击虚拟目录,点击“添加应用程序...”,目录与刚才的虚拟目录...2012-07-12 15:43:00 · 1128 阅读 · 0 评论 -
调用WebService时加入身份验证,以拒绝未授权的访问
众所周知,WebService是为企业需求提供的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。但在有些时候的某些应用服务不希望被未授权访问,那么此时我们可以一下几种方法来实现身份验证。 方法一:在WebService中引入SoapHeader [c-sharp] view plaincopyprint?#region 配置...2012-07-12 15:47:00 · 114 阅读 · 0 评论 -
c#万能视频播放器
本人之前很多的文章中均提到了使用libvlc为播放器内核制作的播放器,也许有些朋友对此感兴趣,于是我用c#写了一个调用libvlc api实现的万能视频播放器,与大家分享一下。说它“万能”,当然是因为我们站在了vlc的肩膀上。 vlc是一个强大而且开源的多媒体播放器,也可以说是一个多媒体平台。它支持非常广泛的媒体格式的本地播放,完全可以媲美mplayer,其对视频网络流的处理能力更是非常强...2013-05-25 10:45:00 · 197 阅读 · 0 评论 -
C#中工作线程和多线程跨线程操作控件
一、前面的话对于一些耗时型操作(如文件下载),让主线程去处理不是明智的选择,虽然这样做会使得程序开发起来很简单。因为WinForm程序设计的准则之一就是Responsive,即让用户觉得程序一直在工作,而不是感觉它在(呵呵,事实上,程序不会,只是你没给他表现得机会,如果它有情感,会觉得委屈死)。.Net FrameWork支持在程序用应用线程编程,这可以很好的解决上述问题,不过有时候直接使...2013-11-05 22:38:00 · 186 阅读 · 0 评论 -
ReSharper 配置及用法
原文:http://www.cnblogs.com/ShaYeBlog/p/3554253.html转载 2014-08-16 20:54:45 · 2559 阅读 · 0 评论