摘要:细分起来,在C#中参数传递应该是算有四种情况的。参数传递方式有按值传递和按引用传递两种,而C#支持的类型呢,也分为两种:值类型和引用类型。所以排列组合一下,就有四种情况了:值类型按值传递、引用类型按值传递、值类型按引用传递和引用类型按引用传递。 1.值类型按值传递值类型变量是直接包含其数据,而引用类型包含的是对数据的引用(即数据的地址)。因此对于值类型变量按值传递时,传递的是变量的一个副本。方法内发生的对参数的更改对原变量中存储的原数据无任何影响,只会影响到变量的副本。我们用段示例代码来解释。值类型按值传递 1 static void Main(string[] args) 2 ...
阅读全文
随笔分类 - [01] C#
C#基础知识及应用
摘要:最近在做Socket网络开发,首先必须解决得问题就是服务器与客户端之间通信的稳定性,最基本的可以用心跳来实现。我采用的是双向心跳机制,大致流程如下:1.每隔一段时间,客户端主动给服务端发送一次心跳包。2.服务端接收到客户端的心跳包后,立即回一个心跳包给客户端。3.当服务器三次没有收到客户端的心跳包,则认为客户端已经断开连接。4.当客户端发送三次心跳包给服务器后,都没有收到回复,则认为客户端已经与服务器失去连接。嗨,和标题要说的问题扯远了。在服务器定时检测客户端连接情况时,我采用的是System.Threading.Timer定时器来处理。但是后来测试的时候,发现这个执行一段时间后,就不再执行。
阅读全文
摘要:在多线程操作界面控件或者组件的时候,经常会遇到一些问题。我们在多线程操作控件的时候,一般都使用如下代码来操作。delegate void MsgDel(string str);protected void MsgEvent(string str){ if (txtContent.InvokeRequired) { txtContent.BeginInvoke(new MsgDel(MsgEvent), str); return; } txtContent.Te...
阅读全文
摘要:问题详细描述:我在一个解决方案中,有两个项目,一个Windows应用项目,一个是类库。但是我在Windows应用中始终无法对类库中的类进行引用,类库的命名空间也识别不了。(肯定添加了对类库的引用 以及 使用Using)。我已经做了我认为所有的尝试解决方案,问题还是依旧,现把我已经做的尝试列举下来:1.重启机器2.重启解决方案3.重建解决方案,并两个项目添加到新解决方案4.重建解决方案,并重建两个项目,把项目相关文件拷贝过去5.尝试对类库文件进行强命名,再引用截图:源文件下载地址:源文件原因:类库的目标框架是:.NET Framework4,而Windows应用项目的目标框架是:.NET Fra
阅读全文
摘要:帮朋友转发招聘需求,首先都比较能够接受外包。职位一:SharePoint中级工程师职位要求:计算机相关专业,本科以上学历,3年以上工作经验;参加过5个中型项目[注:累计80人月以上]的中级程序员角色并在其中担任核心模块的开发,其中至少有3个为Sharepoint平台项目,参加过上汽Sharepoint项目者优先;能熟练使用软件设计模式解决问题;能熟练使用UML工具进行设计表达;熟悉.Net Framework下的各项技术;熟悉Sharepoint平台开发;熟悉K2流程开发;精通Visual Studio开发工具;精通C#开发语言;精通ADO.NET、精通ASP.NET;熟悉SOA架构设计;熟悉
阅读全文
摘要:Today, I met an error which sent a message like 'Can'tmodify the return value,because it is not a variable'. Now, let us see how this problem happens?First, I had defined a struct named SeqString.public struct SeqString { private char[] _data; private int _length; public SeqString(int si
阅读全文
摘要:一直以来对于逻辑与(&&)和按位与(&)的区别不是很确定。今天上网找了一下,然后也写代码验证了一下,现将其区别整理如下,供大家一起探讨。操作数都为数字时 a. 对于两个数字进行按位与(&),会将两数字转换为二进制,然后右对齐后(不足位补零),相应位做与操作,如11&3,11的二进制表示是1011,3的二进制表示是11,右对齐后做与操作后,如图所示: 得到的结果是3。 b. 对于两个数字进行逻辑与(&&),会将两个操作数都转换成Boolean逻辑值(不为0的数字则为true,否则为false),然后再做与操作。 演示代码如下: static
阅读全文
摘要:首先,先看一张结论表If(有类显式静态构造函数){If(有访问静态成员){在进入Main函数之后,第一次访问静态成员之前,先调用静态构造函数,以后将不再调用静态构造函数,同一个静态构造函数最多只能调用一次。}Else{不调用该类静态构造函数}}Else{If(有访问静态成员){在执行Main函数中的代码之前,先调用静态构造函数,以后将不再调用静态构造函数,同一个静态构造函数最多只能调用一次。}Else{不调用该类静态构造函数}}1.下面先来验证一下上面的结论public class Class_1 { public static int i; static Class_1() //显式定义静态
阅读全文
摘要:C#中,数据传递的方式有两种:按值传递和按引用传递,且默认情况下都是按值传递。而CLR支持两种基本类型为:值类型和引用类型。1. 当传递的参数为值类型,且数据传递方式为按值传递时,传递的是数据的一个拷贝。2. 当数据传递方式为按引用传递时,必须以ref或者out关键字来修饰。由于这部分不是本文主题,不做详细介绍,想了解相关内容可参见【原创】C#中ref和out的异同3. 当引用类型参数按值传递时,传递的是引用类型地址的数据拷贝。下面通过例子来验证第3点中所说先看以下示例代码:class Program { public static void Main() { var abf = new Ar
阅读全文
摘要:由于最近项目需要对swf文件进行分析,在网上找了不少资料,也参照了adobe官方发布的swf file format文档,但是并不是很明白。后来经过几天的努力,终于有所顿悟(可怜天生迟钝,领悟能力比较差吧,那只有勤能补拙,多花点时间了)。下面把这几天的努力成果和大家分享一下(其中部分资料是整理自网友,不过由于分不清谁是原创,我也没法给出完整的原文地址了,部分是经过自己修正的)。在整理网友的资料时,...
阅读全文
摘要:适用环境:Winform开发,VS2008开发工具问题描述:有一系列产品,每个产品都有唯一产品ID,产品名称。需要绑定产品到下拉框(ComboBox)中,由于Winform的下拉框控件,不像Web开发中的下拉框控件一样,能够直接添加两个元素到每一项(Value和Text)。但是它允许直接添加object对象项,所以反而更灵活。在下拉框中需要显示产品信息,并且不只是简单显示名称,需要做一些特别的处理...
阅读全文
摘要:有时候我们在编写程序的时候会突然使用一些比较少见的用法,比如今天在编写程序过程中,遇到这样一个问题。这个问题我以前没有遇到过,刚开始不知道怎么处理比较好。在搜寻的过程中发现其实.net类库已经提供了现成的处理方法。因此在此记录一下,仅供以后学习参考,也希望能够有同样需要的朋友一个参照。下面来看看这个问题吧! 问题描述:有一个泛型方法如public List<T> getList<...
阅读全文
摘要:一直以来对设计模式,怎么写出高质量、高效、可移植性强的理解不深。也许经验不足是一个很大的原因吧。今天花了很久的时间整理了一个数据库操作类库(简化版),希望能得到各位前辈的指点。 首先,我定义了一个数据库操作接口IDbOperator,该接口实现IDisposable接口,用于操作结束后释放各种资源。类图如下: 属性: ConnectString用于获取数据库连接字符串 DbConn...
阅读全文
摘要:前段时间在开发一个数据统计系统,使用了微软3.5版本出来的MSChart绘图组件,由于这个组件的强大性,因此我就没有考虑使用其他组件。在开发过程一路势如破竹,一切都很顺利。今天项目要交付,把系统提交上去一运行,发现直接崩溃。这时才意识到可能开发环境中的某些条件客户机上不具备。开发环境中安装了:MSChart.exe,而客户机上并没有安装;而在部署文件中,我只Copy了Higame.Chart.dl...
阅读全文
摘要:问题描述:很多时候我们可能需要在极短的时间内生成大量的随机数,但是你可能会发现生成了很多重复的随机数。并不是你所希望生成大量不同的数,或者说相同的数极少。分析原因:Random是主要产生伪随机数的类,它主要包括两个构造函数(无参构造函数和带一个Int32类型参数的构造函数),无参构造函数主要采用系统时间作为随机种子,带参数的构造函数需要自己去指定随机种子。而在很短的时间内生成大量随机数的时候,由于...
阅读全文
摘要:转载一段C#获取文件编码的代码,在此感谢代码提供者的无私奉献!/// <summary> /// 检测字符编码的类 /// <seealso cref="System.IO.Stream"/> /// <seealso cref="System.Uri"/> /// <seealso cref="System.IO.FileInfo"/> /// &...
阅读全文
摘要:下面贴出自己用C#写的注册表操作类,欢迎大家拍砖! 1.注册表基项静态域[代码] 2.指定在注册表中存储值时所用的数据类型,或标识注册表中某个值的数据类型[代码] 3.注册表操作类[代码]
阅读全文
摘要:[DllImport("User32.dll ", EntryPoint = "SetParent")]private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);[DllImport("user32.dll ", EntryPoint = "ShowWindow")]public static ex...
阅读全文
摘要:简述:我在开发中有时候会遇到这样的问题,如:我有这样一张笔记本品牌表分类ID分类名称1001宏基1002联想1003华硕1004惠普现在我需要把这些产品显示给用户,让用户做某种或多种选择,而我在用户做出选择之后,我需要获得的只是用户选择产品所对应的产品ID,客户并不知道他所选择的产品ID。在web开发方面似乎很多的列表控件都已经提供了很好的支持,如CheckBoxList, RadioButton...
阅读全文
摘要:现要用到DataView过滤操作符,便于以后方便查找,记下了。操 作 符描述<、>、<=和>=对多个值进行比较。这些比较可以是按数字(数值数据类型时)或按字典排序(字符串数据类型时)<>和=进行相等测试NOT将表达式反向。可和其他子句一起使用BETWEEN指定一个包含的范围。例如,“Units BETWEEN 5 AND 15”选择含有从...
阅读全文