C#and.Net
文章平均质量分 67
Peter-H
使用C#快速开发稳定可扩展的应用程序
展开
-
C# chart控件运用
为了弄一个实时数据显示的窗口,最近一周时间都耗在这个控件上了,属性有点多。(下面列的是一些常用的)后来干脆写代码把他们封装起来,各个chart直接来调用它,省的到属性里面去设置。。chart内的一些元素:chart控件的主要两个属性为 chartAreas和Series。 void chartProperty(Chart chartName) //封装 图表属性 ...原创 2015-01-14 15:43:29 · 6423 阅读 · 0 评论 -
VS2013中添加现有窗体项
假如要从另一项目中拷贝窗体到本项目中,例如FmMain窗体, 需要. 把FmMain.cs 和 FmMain.Designer.cs 和 FmMain .resx 三个文件复制到程序目录下, 在vs里面添加现有项, 选择FmMain.cs, 其他文件不要选, 完成操作后刷新,等一会儿就可以打开窗口了。记得在vs2008版是要选择3个文件添加的, vs2012, vs2013就改为选原创 2016-03-07 17:33:16 · 8984 阅读 · 0 评论 -
remoting与socket、web service的比较及实例
remoting基础 一种分布式处理方式,可以说是DCOM的一种升级 跨过应用程序域,与另外的应用程序域进行通信,即穿越边界 在remoting中是通过通道(channel)来实现两个应用程序域之间对象的通信的 优点: 1、能让我们进行分布式开发 2、Tcp通道的Remoting速度非常快原创 2015-12-21 09:42:29 · 3495 阅读 · 0 评论 -
string.Format对C#字符串格式化
转:string.Format对C#字符串格式化MSDN格式字符串1、格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0.20)默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数string.Format("{0:C1}",23.转载 2016-01-21 11:28:29 · 2958 阅读 · 0 评论 -
C#序列化
引言:可远程处理和不可远程处理的对象请记住,在一个应用程序域中创建并因而特定于该域的对象可以直接从该域中调用,但如果要从该域中调用在其他域中创建的对象,就必须先进行一些设置,这一点非常重要。并非所有类型的对象都可以跨域边界进行有效地发布和使用;因此,必须根据应用程序的要求来决定要发布哪种对象。为了开发分布式应用程序,有两类对象可供选择:不可远程处理的对象和可远程处理的对象。不可远程处理的对原创 2016-01-21 10:05:55 · 578 阅读 · 0 评论 -
应用服务器
WEB服务器、应用程序服务器有何区别?IIS、Apache、Tomcat、Weblogic、WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了: Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是转载 2015-11-30 10:04:50 · 503 阅读 · 0 评论 -
Visual Studio 2013 帮助文档 安装以及如何直接打开
1、在线安装VS2013的MSDN帮助文档在利用VS2013集成开发环境(IDE)开发程序代码时会经常用到帮助文档,但默认情况下在帮助文档是在线以网页的形式呈现的,当我们不方便上网时就不能够查看帮助文档了。因此,我们需要将帮助文档安装到本地磁盘。打开VS2013,在VS的菜单栏中找到“HELP”--“Add and Remove Help Content”若没下载 安装原创 2015-04-22 15:16:53 · 4226 阅读 · 0 评论 -
Visual Studio 常用快捷键(一)
最近看到很多同事用 VI 来开发Ruby,Python脚本。 编辑代码全部用的是快捷键,效率很高。其实Visual Stuido也有非常多的快捷键,熟练运用后,能大大提高工作效率。 本文介绍一些最常用的快捷键本文用的GIF动画图片,是通过LICEcap工具录制的。阅读目录VS快捷键教程删除或剪切一行(Ctrl + X)格式化整个文档(Ctrl + K, Ctrl + D转载 2015-03-10 14:40:27 · 547 阅读 · 0 评论 -
C#代码用F12转到定义时,不到源代码,而到元数据
在项目A中有个类是在另一个项目B中定义的,通过引用,在A中调用了该类,有时用F12转到定义时,转到元数据去了,而不是B中的源代码。。??元数据是:NET 程序集中的标记信息。 是在代码中选择了转到定义时候给定位的吧。因为没有找到源代码,VS通过反射读取元数据中的信息生成了那个。解决方法:在A项目的Bin文件中把原来的项目B生成的DLL删掉,运行试试。。原创 2016-03-07 22:50:36 · 4346 阅读 · 0 评论 -
C#中的IntPtr类型
C#中的IntPtr类型称为“平台特定的整数类型”,它们用于本机资源,如窗口句柄。资源的大小取决于使用的硬件和操作系统,但其大小总是足以包含系统的指针(因此也可以包含资源的名称)。 所以,在调用的API函数中一定有类似窗体句柄这样的参数,那么当您声明这个函数时,您应该将它显式地声明为IntPtr类型。 例如,在一个C#程序中调用Win32API mciSendString函原创 2016-02-24 18:44:33 · 2470 阅读 · 0 评论 -
byte字节数组 转换成double类型
例子byte[] byteArray = {64, 47, 215, 10, 61, 112, 163, 215};Array.Reverse(byteArray);var result = BitConverter.ToDouble(byteArray, 0); // 结果为15.92字节转换BitConverter.ToDouble 方原创 2017-01-31 15:51:40 · 20249 阅读 · 2 评论 -
WinForm小知识
1、WinForm 使RichTextBox的垂直滚动条一直位于底部richTextBox1.SelectionStart = richTextBox1.TextLength;richTextBox1.Focus();或者richTextError.Select(richTextError.TextLength, 0); richTextError.ScrollToCaret();原创 2017-01-18 20:24:11 · 603 阅读 · 0 评论 -
C# 随机数
随机数的定义为:产生的所有数字毫无关系。1、产生-5到5之间的随机数Random rnd = new Random();如果是要整数,就这样:rnd.Next(-5,5);如果是浮点数,rnd.NextDouble(); 因为得到的数是0.0~1.0之间的double,乘以(5-(-5)),就变成0~10.0,再减去5,就变成-5~5了2、随机数不重复Random原创 2017-01-18 20:43:15 · 4933 阅读 · 0 评论 -
C#将可调整数据写在配置文件
应用程序配置文件(App.config)是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。 读取配置文件: System.Configuration.ConfigurationManager.AppSettings["IP"];需要引用System原创 2016-11-18 23:48:15 · 1238 阅读 · 0 评论 -
DataGridView动态添加数据
近来做串口通信测试程序,刚开始用的listview显示收发数据,然后我想复制发现listview不可编辑,于是改为datagridview控件。 DataGridView控件在实际应用中非常实用,特别需要表格显示数据时。可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行。假如需要动态为DataGridView控件添加新行,方法有很多种,下面简单介绍如何为DataGri原创 2016-10-26 19:39:52 · 15888 阅读 · 0 评论 -
vs2010 创建和C#使用动态链接库(dll)
一、VS 用 C++ 创建动态链接库Step 1:创建Win32 Console Application本例中我们创建一个叫做“Test”的Solution。Step 2:将Application Type设定为DLL在接下来的 Win32 Application Wizard 的 Application Settings 中原创 2016-02-29 10:01:41 · 3275 阅读 · 0 评论 -
WinForm窗体继承自定义的模板窗体出错
在开发Winform程序的时候,我们往往需要根据需要做一些自定义的控件模块,这样可以给系统模块重复利用,或者实现更好的效果等功能。而今天自定义一个窗体,然后子窗体继承的时候出现了一点问题。问题:在Windows应用程序中,从现有的窗体继承,查看子窗体的设计视图时,会出现错误:未将对象引用设置到对象的实例。(设计视图打不开)或会出现错误:服务容器中已存在服务 System原创 2016-03-10 23:15:48 · 4330 阅读 · 0 评论 -
C#-StructLayoutAttribute(结构体布局)
struct实例字段的内存布局(Layout)和大小(Size)在C/C++中,struct类型中的成员的一旦声明,则实例中成员在内存中的布局(Layout)顺序就定下来了,即与成员声明的顺序相同,并且在默认情况下总是按照结构中占用空间最大的成员进行对齐(Align);当然我们也可以通过设置或编码来设置内存对齐的方式. 然而在.net托管环境中,CLR提供了更自由的方式来原创 2016-02-24 18:58:42 · 13798 阅读 · 1 评论 -
C#的基类都有哪些方法
之前面试有被问到这个问题,平时没去注意,回答的不好,在此整理一下。在C#中,Object类型是所有类型的根。Object类型中一共有8个方法,重载的方法没有算进来:构造函数ToString()函数GetHashCode函数Equals函数ReferenceEquals函数Finalize函数GetType()函数MemberWiseClone()函数原创 2015-10-12 09:25:23 · 2682 阅读 · 0 评论 -
迭代器.NET实现—IEnumerable和IEnumerator (foreach实现)
IEnumerable和IEnumerator两个接口都是为迭代器模式而准备的。 下面我们先看IEnumerable和IEnumerator两个原创 2015-07-14 16:03:14 · 747 阅读 · 0 评论 -
在C#类文件 自动添加文件注释的方法
对于vs2013来讲,步骤:1.VS2013 中找到(安装盘符以C盘为例)C:\ProgramFiles(x86)\Microsoft VisualStudio12.0\Common7\IDE\ItemTemplatesCache\CSharp\Code\2052\Class对于vs2008来讲,路径是C:\Program Files (x86)\Microsoft Vis原创 2015-05-20 22:07:29 · 4076 阅读 · 2 评论 -
C#中的线程 入门
Keywords:C# 线程Source:http://www.albahari.com/threading/Author: Joe AlbahariTranslator: Swanky WuPublished: http://www.cnblogs.com/txw1958/Download:http://www.albahari.info/threading/threadin转载 2014-12-04 18:31:57 · 962 阅读 · 0 评论 -
线程小结
什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执原创 2014-12-05 15:08:38 · 512 阅读 · 0 评论 -
null和" "的区别
String str1 = null; str引用为空String str2 = ""; str引用一个空串也就是null没有分配空间,""分配了空间,因此str1还不是一个实例化的对象,而str2已经实例化。注意因为null不是对象,""是对象。所以比较的时候必须是 if(str1==null){...}和if(str2.equals("")){原创 2015-05-23 22:17:32 · 585 阅读 · 0 评论 -
使用 Code Snippet 简化 Coding
使用 Code Snippet 简化 Coding 在开发的项目的时候,你是否经常遇到需要重复编写一些类似的代码,比如是否经常会使用 for、foreach ? 在编写这两个循环语句的时候,你是一个字符一个字符敲还是使用 Visual Studio 提供的Code Snippet 工具自动帮你生成呢?神奇之处 你只需要在代码编辑器中输入for,就会看到 Visual转载 2014-10-14 15:45:17 · 529 阅读 · 0 评论 -
中文序列按笔画排序
问题:给定一串含中文的序列,按首字符的笔画数排序因为默认是按拼音来排序的,借助Globalization命名空间,包含定义区域性相关信息的类,这些信息包括语言,国家/地区,正在使用的日历,日期、货币和数字的格式模式,以及字符串的排序顺序。我们可以使用这些类编写全球化(国际化)应用程序。CultureInfo 类,提供有关特定区域性的信息(对于非托管代码开发,则称为“区域设置”)。原创 2015-10-18 17:37:22 · 2077 阅读 · 0 评论 -
组件与.NET互操作
1、何谓组件技术?组件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行了封装,同时对各种业务逻辑规则进行了实现,用于处理用户的内部操作细节,甚至于将安全机制和事物机制体现的淋漓尽止。而这个封装体就常常的被我们称作组件。2、组件有什么作用?这个问题似乎有些笼统,试着想一想windwos何以实现如此强大的生产力?而在它的背后到底有什么在服务着?一句原创 2015-10-26 13:10:27 · 1094 阅读 · 0 评论 -
C#中浅拷贝与深拷贝(复制)
在有些时候,我们需要从数据库读取数据填充对象或从硬盘读取文件填充对象,但是这样做相对耗时。这时候我们就想到了对象的拷贝。本文即以实例形式解析了C#浅拷贝和深拷贝的用法。具体如下: C#中有两种类型变量,一种 是值类型变量,一种是引用类型变量。对于前者,copy是属于全盘复制;而对于后者,一般的copy只是浅copy,相当于只传递一个引用指针一样。因此 对于后者进行真正copy的时候,也是最费原创 2015-09-16 10:31:09 · 8021 阅读 · 1 评论 -
抽象类和接口
接口和抽象类的概念不一样。抽象类是对根源的抽象,接口是对动作的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物原创 2014-10-17 11:00:50 · 549 阅读 · 0 评论 -
C#中数组、ArrayList和List三者的区别
在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢。数组 数组在C#中最早出现的。在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单。//数组string[] s=new string[2];//赋值s[0]="a";s[1]="b";//修改s[1]="a1";但是数组存在一些不足的地转载 2015-10-26 21:46:27 · 520 阅读 · 0 评论 -
C#编程的几个建议
1、属性(properties)抽象属性可以放在接口的定义里。如:public interface INameValuePair { string Name { get; } T Value{ get; set; } }所有私有字段的访问都建议使用属性来处理,类中所有的数据成员都应当是私有的。属性在FCL(Framewor原创 2015-04-08 15:54:18 · 502 阅读 · 0 评论 -
Visual Studio 常用快捷键 (二)
阅读目录按两下Tab键回退到光标的上一次位置 Ctrl+减号自动添加Using命名空间插入自动属性查找所有的引用 Shift+F12显示或者隐藏Tab标记 (Ctrl+ R, Ctrl+W)字符变小写 Ctrl+U 按两下Tab键按两下Tab键的用处非常多,比如我们写for, foreach循环,或者try, 还有绑定事件方法的时候, 按两下Tab键就可以转载 2015-03-10 14:55:52 · 838 阅读 · 0 评论 -
C# 跨线程调用控件
在C#应用程序开发中,我们经常要把UI线程和工作线程分开,防止界面停止响应。同时我们又需要在工作线程中更新UI界面上的控件,下面介绍几种常用的方法线程间操作无效界面上有一个button和一个label, 点击button会启动一个线程来更新Label的值 private void button1_Click(object sender, EventArgs转载 2015-03-10 14:20:50 · 814 阅读 · 0 评论 -
《C#求职宝典》读书笔记
王小科 电子工业出版第一篇 面试求职第一步一个例子:一支行军中的队伍长100米,一个传令兵从队尾跑至队头,再立即返回队尾,队伍正好前进了100米.假设队伍和传令兵行进的速度恒定,问传令兵跑了多少米?设士兵速度x,队伍y 追赶与相遇问题, [100/(x-y)+100/(x+y)]*y=100 解得 x=(1+根号2)y 路程与速度成正比(时间相同)原创 2015-07-19 22:48:37 · 1571 阅读 · 0 评论 -
App_Code里的类引用问题
我们在.net编程时,有时候会出现在App_Code里的类,其他地方不能调用它。提示未找到类型或命名空间名称。App_Code里的类,我们在引用它的时候是不需要引入命名空间的。那么为什么还是不能直接调用呢?问题出在它的生成操作的方式上。具体解决方法如下:首先找到不能引用的类文件,右击,属性,把“生成操作”属性值由“内容”改为“编译”。原创 2017-01-31 16:07:32 · 5414 阅读 · 2 评论