随笔分类 - C#
1
摘要:现有文本文件“test.txt”(使用vc保存的,具体格式编码未知),只有2行字符串,如下图所示: 图1 其行数据是按照一定格式排列的,前6个字节表示是人名(字符串),后2个字节表示年龄(整形值)。例如第一行“熊选文28”,表示熊选文的年龄是28岁。注意,第二行其中的”?”不是中文的问号,也不是英文的问号,只是Windows系统没有对应字符,才显示? 。如下图,该“?”对应的两个字节:C6 ...
阅读全文
摘要:C#编码标准--编码习惯 cuike519(翻译)1. 避免将多个类放在一个文件里面。 2. 一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面。3. 一个文件最好不要超过500行的代码(不包括机器产生的代码)。4. 一个方法的代码长度最好不要超过25行。5. 避免方法中有超过5个参数的情况。使用结构来传递多个参数。6. 每行代码不要超过80个字符。7. 不要手工的修改机器产生的代码。a) 如果需要编辑机器产生的代码,编辑格式和风格要符合该编码标准。b) Use partial classes whenever possible to factor out the mainta
阅读全文
摘要:Visual Studio 中的编程基础命名空间 介绍用于集合、字符编码、文件 I/O 和线程处理的 .NET 命名空间。System.Collections — 它包含的接口和类定义各种对象(如列表、队列、数组、哈希表和字典)集合。System.Collections.Generic -- 包含定义泛型集合的接口和类;泛型集合允许用户创建强类型的集合,这种集合在类型安全和性能上均优于非泛型强类型集合。System.IO — 它包含的类型用于支持数据流和文件的同步和异步读写。System.Text — 它包含表示 ASCII、Unicode、UTF-7 和 UTF-8 字符编码的类;用于来回转
阅读全文
摘要:今天觉得系统服务项太多,就禁止了一些。结果在运行VS2005时老是弹出"试图运行项目时出错:无法启动调试。绑定句柄无效",很是恼火。心想肯定与刚才禁用了某些服务项有关。 上网一查,果然,这个与TerminalServices这个服务有关。它的描述是:允许用户以交互方式连接到远程计算机。远程桌面、快速用户切换、远程协助和终端服务器依赖此服务 - 停止或禁用此服务会使您的计算机变得不可靠。 回到系统“服务”一看,我的TerminalServices果然被禁止了,赶紧改为自动,然后运行vs2005,OK!解决方法: 具体步骤:“控制面板”—》“管理工具”—》“服务”—》找到Ter
阅读全文
摘要:转自: http://www.cnblogs.com/xiaoshatian/archive/2009/11/23/1608432.html字体不仅是设计师手中重要的武器,对我们开发人员来说,字体的选择也有许多讲究,一个好的、适合展示代码的字体,应该具备以下要素:等宽的字符 简洁、清晰并且规范的字符形状 支持ASCII码为128以上的扩展字符集 与字符同等宽度的空格 易于分辨的小写字母l、大写字母I、数字1和符号| 易于分辨的大写字母O和数字0 易于分辨的前引号和后引号,最好能够前后对称 易于分辨的其他标点符号,尤其是大括号、中括号、小括号和尖括号 良好的中文支持和显示 下图展示了一个极端的反
阅读全文
摘要:转自:http://www.cnblogs.com/xiaoshatian/archive/2009/11/20/1606440.html“让代码看起来更舒服”,看到这个标题,也许你会条件反射地以为我要讲“重构”或者“编码规范”等等。噢,可爱的开发人员,我们暂且不谈技术,只谈体验。让我们来装扮一下每天都要面对的Visual Studio,让代码看起来更舒服。下图展示了Visual Studio 2008默认的编辑器,为了让代码更加容易辨识,Visual Studio用不同的颜色将各种关键词区分开来。默认的配色方案固然无可厚非,每当夜深人静的时候,它总是能让我热泪盈眶。我当然没有矫情到被自己的代
阅读全文
摘要:转自:http://www.cnblogs.com/peterzb/archive/2009/06/21/1507880.html1. 仿office 2007的Ribbon风格面板(该控件模仿office 2007的Ribbon风格,显示操作面板。)2. .NET中最全功能的表格控件[翻译]Mathew Hall.著XPTable - .NET ListView meets Java's JTable[简介]由于项目需要,我需要定制一个ListView,它必须能够在列中插入图像、下拉框、可上下调整的数字、进度条等等。由于已经有了一个Java下的背景,我将简单地基于那个JTable封装
阅读全文
摘要:最近开发一个程序,需要从c++端启动一个c#开发的程序,并传递参数。具体做法是:在c++端调用CreateProcess()来启动c#端,并传递相关参数,而在c#端通过Main(string[] args)中的args来接收命令行参数。C++发送端代码:int main(int argc, char* argv[]){ char *fileName="c:\csharp.exe"; char *params="参数1 参数2 参数3";//传递三个参数 PROCESS_INFORMATION pii; STARTUPINFO sii; memset(&a
阅读全文
摘要:一、asp.net中导出Execl的方法:在asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上;一种是将文件直接将文件输出流写给浏览器。在Response输出时,t分隔的数据,导出execl时,等价于分列,n等价于换行。 1、将整个html全部输出execl此法将html中所有的内容,如按钮,表格,图片等全部输出到Execl中。 Response.Clear(); Response.Buffer= true; Response.AppendHeader("Content-Disposition","
阅读全文
摘要:原作出处:http://www.codeproject.com/useritems/tips.asp?df=100一..Net Framework1. 如何获得系统文件夹使用System.Envioment类的GetFolderPath方法;例如:Environment.GetFolderPath( Environment.SpecialFolder.Personal )2. 如何获得正在执行的exe文件的路径1) 使用Application类的ExecutablePath属性2) System.Reflection.Assembly.GetExecutingAssembly().Locati
阅读全文
摘要:引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。将方法作为方法的参数我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问
阅读全文
摘要:1 前言 一直想写一编关于Winform UI规范化开发的文章,客户总是抱怨我们程序界面不美观,操作不方便。作为程序开发者,工作重点往往在业务逻辑实现上,或许他们可以设计很好的算法,将系统的资源占用率降的更低,使运行效率提得更高。但这些高质量的逻辑代码的用户是看不到的;用户衡量程序的好坏,除了运行结果正确与否外,非常重要的一方面就是界面是否规范,操作是否方便。 写这篇文章之前在同学齐的QQ空间中看到关于WPF/XAML技术的一些讨论。刚接触WPF/XAML这个字眼的时候,竟然不知所云,后来与他联系才得知是微软在.Net3.5中推出的一套构建应用程序UI全新的技术体系。技术的更新速度实在令每个程
阅读全文
摘要:C# 自定义用户控件xiongxuanwen上篇:控件制作本例是制作一个简单的自定义控件,然后用一个简单的测试程序,对于初学者来说,本例子比较简单,只能起到抛石引玉的效果。我也是在学习当中,今后会将自己所学的逐步写出来和大家交流共享。第一步:新建一个控件库项目:myControl 第二步:从工具箱里面拖动1个PictureBox、1个Button、6个Lable控件到用户界面上,布局如下: 如上图,设置pictureBox的Name为picBox,背景为白色,Button的Name为btnOpen,另外靠左的三个Lable的Text属性分别为:文件名称,文件大小,文件尺寸,靠右的三个Lable
阅读全文
摘要:接上篇:我采用的是C#开发的一个windows应用程序(pipe_server_csharp)作为服务器端,而MFC开发的应用程序(NamedPipeClient_vc)作为客户端。客户端和服务器端要进行频繁的大量的通信,常见的是文本信息和曲线数据,例如,一共有10条曲线,每条曲线有1000000条double数据。服务器端:服务器端是用在VS2005中用C#开发的一个名为pipe_server_csharp的应用程序,只有一个名为frmServer的主界面。由于管道的相关API函数都是属于kernel32.dll函数,C#中不能直接调用,所以必须将所要用到的API函数全部封装在一个类Name
阅读全文
摘要:C++和C#进程之间通过命名管道通信(上)“命名管道”是一种简单的进程间通信(IPC)机制。命名管道可在同一台计算机的不同进程之间,或在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。用命名管道来设计应用程序实际非常简单,并不需要事先深入掌握基层网络传送协议(如TCP/IP或IPX)的知识。因为命名管道利用了微软网络提供者(MSNP)重定向器,通过一个网络,在各进程间建立通信。这样一来,应用程序便不必关心网络协议的细节。命令管道是围绕Windows文件系统设计的一种机制,采用“命名管道文件系统”(NamedPipeFileSystem,NPFS)接口。因此,客户机和服
阅读全文
摘要:在C#中经常需要调用一些API函数,那么怎样才能正确的调用API函数呢,如下:一、调用API格式//引用此名称空间,简化后面的代码usingSystem.Runtime.InteropServices;...//使用DllImportAttribute特性来引入api函数,注意声明的是空方法,即方法体为空。[DllImport("user32.dll")]publicstaticexternReturnTypeFunctionName(typearg1,typearg2,...);可以使用字段进一步说明特性,用逗号隔开,如:[DllImport("kernel32
阅读全文
摘要:对于property和attribute这两个名词都叫“属性”的问题,来源于国内it书籍翻译界的疏忽。其实它们来源于两个不同的领域,attribute属于OOA/OOD的概念,而property属于编程语言中的概念。下面我们来说明它们的异同。AttributeAttributes是Microsoft .NET Framework文件的元数据,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。Property属性是面向对象编程的基本概念,提供了对私有字段的访问封装,在C#中以get和set访问器方法实现对可读可写属性的操作,提供了安全和灵活的数据访问封装。关于属性的概念,不是
阅读全文
摘要://以单词为单位对字符串进行翻转,先按照字母进行翻转,然后按照单词进行翻转 string str1 = "12345 67890"; string str2 = ""; string str3 = ""; for (int o = str1.Length - 1; o >= 0; o--) str2 += str1[o];//按字母翻转 char[] chArr = new char[str1.Length]; int i = 0; int j = 0; int index = 0; while (index < str2
阅读全文
摘要:前些天面试,被问到String和StringBuild的区别,我不知道StringBuild是什么,很不好意思。回来之后就仔细的查阅了相关文档,如下:String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能.
阅读全文
1
浙公网安备 33010602011771号