C#学习
文章平均质量分 63
lazy_man36
来自同济大学软件学院
展开
-
C# 静态类、静态构造器、静态方法、静态字段
C# 静态类、静态构造器、静态方法、静态字段一、静态类 不需要也不能被实例化的类,用static修饰(注意,static不可修饰struct) 静态类必须从基类System.Object派生。 静态类不能实现任何接口,不能有实例构造器。 静态类只能定义静态成员(字段、方法、属性和成员)。 静态类不可被继承。原创 2014-03-31 20:35:46 · 1459 阅读 · 0 评论 -
C# 值类型传参、引用类型传参
一、传递参数 C#传递参数方式有两种,可以通过按值传递也可以按引用传递。而其本身类型有值类型与引用类型两种,下面分类详细说明。二、按值传参 1.值类型 值类型存储在栈中,故按值传递时只是简单传递一份复制数据,接受参数的函数操作的只是一个副本,对原数据未做任何修改。2.引用类型 引用类型存储空间在堆栈和堆中都有,堆栈中存储其在堆中的地址,按值传递引用类型时,传递的是地址的副本,在函数内部修改时,只会修改到原对象的数据,而不能实现对原对象的整体修改(因为对象存储在堆中,修改对象只是在堆中新建一个对象原创 2014-04-09 11:23:10 · 2974 阅读 · 0 评论 -
C#退出窗口程序的四种方法
C#退出窗口应用程序的四种方法1.this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;2.Application.Exit(); 方法停止在所有线程上运行的所有消息循环,并关闭应用程序的所有窗口;但是若有托管线程(非主线程),也无法干净地退出;3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;它意味着放弃所有消息泵,展开调用堆栈,并将执行返回给系统原创 2014-04-08 23:04:37 · 2912 阅读 · 0 评论 -
C# virtual override abstract new区别
C# virtual override abstract new区别C#中关键字virtual、override、abstract、new等经常原创 2014-04-09 18:57:54 · 957 阅读 · 0 评论 -
C# 面向对象的思想
C# 面向对象的思想面向对象有三大特点:继承、封装与多态一、多态多态是指同一操作作用于不同的对象,会产生不同的执行结果。有两种方式:(1)编译时的多态性:通过重载实现(重载函数:函数名相同,参数不同,与返回值无关)(2)运行时的多态性:通过虚函数实现,子类中override重写实现。说明A a=new B();//A是父类,B继承自A运行a.func();当func是非虚函数,那么执行A中的;若是虚函数,则判断B中有无重写,有则执行B中的,无则执行A中的。二、继承继承有两种形式:一种通原创 2014-04-24 21:17:15 · 1497 阅读 · 0 评论 -
C#将string转为十六进制
/// <summary> /// 将string格式转化为十六进制数据 /// </summary> /// <param name="msg"> /// </param> /// <returns> /// </returns> public static string tenToSixteen(string msg) { long number = C原创 2014-07-24 17:46:09 · 12561 阅读 · 0 评论 -
C# wpf程序获取当前程序版本号
C# wpf程序获取当前程序版本号 /// <summary> /// 获取当前系统的版本号 /// </summary> /// <returns></returns> public static string GetEdition() { return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToStri原创 2014-07-25 09:53:04 · 7711 阅读 · 0 评论 -
c# UTF-8转gb2312
/// <summary> /// UTF8转换成GB2312 /// </summary> /// <param name="text"></param> /// <returns></returns> public static string UTF8ToGB2312(string str) { try { Encoding ut原创 2014-07-24 17:26:16 · 2023 阅读 · 0 评论 -
C# 字符串按字节截取
C# 字符串按字节截取/// <summary> /// 截取指定字节长度的字符串 /// </summary> /// <param name="str">原字符串</param> /// <param name="startIndex">起始位置</param> /// <param name="len">截取字节长度</param> /// <returns></returns> publ原创 2014-07-24 17:32:21 · 1792 阅读 · 0 评论 -
Flex 页面启动事件
事件启动顺序容器Preinitialize=》子组件preinitialize=>子组件initialize=》childAdd=》initialize=>子组件creationComplete=》子组件updateComplete=》CreationComplete=》updateComplete 其中,常用事件为creationComplete原创 2014-08-07 14:00:00 · 831 阅读 · 0 评论 -
C#连接mysql数据库
C#连接mysql数据库C#连接mysql数据库有多种方法,这里详细说明采用Mysql.Data.dll组件方法。Mysql.Data.dll下载地址http://pan.baidu.com/s/1nt0n0RB原创 2014-04-08 22:54:44 · 999 阅读 · 0 评论 -
C#网络编程(订立协议和发送文件) - Part.4
C#网络编程(订立协议和发送文件) - Part.4文件传输前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件。比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1、S2或S3(S为Send缩写)时,分别向服务端发送文件Client01.jpg、Client02.jpg、Client03.jpg;当我们输入R1、R2或R3时(R为R转载 2014-04-09 09:02:35 · 606 阅读 · 0 评论 -
c# 浅拷贝与深拷贝
c# 浅拷贝与深拷贝C#中变量类型有两种,值类型与引用类型,下面对两种分别说明。一、值类型对于值类型而言,浅拷贝和深拷贝都是一样的,都是通过“==”实现,其结果都是将字段拷贝到目标对象中,这个不难理解。二、引用类型对于引用类型而言,浅拷贝只是将对象中的值类型字段复制到目标对象中,而引用类型字段只是复制一份引用过去。而深拷贝则是将所有对象字段全都复制到目标字段中。三、实现机制 对于值类型: a.浅拷贝: 通过赋值等操作直接实现,将对象中的值类型的字段拷贝到新的对象中。原创 2014-04-15 22:41:13 · 1053 阅读 · 0 评论 -
C# equal和==区别
C#中,判断相等有两种方式,一种是传统的==操作,一种是object提供的Equals方法。二者的区别在于 一、==操作符判断的是堆栈中的值,Equlas判断的是堆中的值。C#提供值类型和引用类型,值类型存储在栈上,故用==判断是直接判断其值是否相等,因为值类型不存在堆中的数据,因此值类型的Equals也是判断数据。即,对于值类型而言,==与Equals相同,均是判断其值是否相等。对于引用类型而言,其栈中存储的是对象的地址,那么==就是比较两个地址是否相等,即是否指向同一个对象;Equals函数则是比原创 2014-04-05 11:55:01 · 1606 阅读 · 0 评论 -
C# JSON转换以及编码转换
C# JSON转换以及编码转换一、C# Json转换首先需要下载安装Newtonsoft.Json.dll,下载地址 引用后再添加:using Newtonsoft.Json;using Newtonsoft.Json.Converters;即可使用。String转JSONString json=JsonConvert.SerializeObject(str);JSON转StringString str=JsonConvert.DeserializeObject<String>(json);原创 2014-05-01 22:03:44 · 10061 阅读 · 0 评论 -
C#网络编程(基本概念和操作) - Part.1
C#网络编程(基本概念和操作) - Part.1引言C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助。如果想要更加深入的内容,可以参考相关书籍。本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议、套接字、聊天程序的三种开发模转载 2014-04-09 08:58:20 · 798 阅读 · 0 评论 -
C#网络编程(接收文件) - Part.5
C#网络编程(接收文件) - Part.5这篇文章将完成 Part.4 中剩余的部分,它们本来是一篇完整的文章,但是因为上一篇比较长,合并起来页数太多,浏览起来可能会比较不方便,我就将它拆为两篇了,本文便是它的后半部分。我们继续进行上一篇没有完成的步骤:客户端接收来自服务端的文件。4.客户端接收文件4.1服务端的实现对于服务端,我们只需要实现上一章遗留的sendFi转载 2014-04-09 09:03:45 · 629 阅读 · 0 评论 -
Singeleton
Singleton pattern二、要点显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。从具体实现角度来说,就是以下三点:一是单例模式的类只提供私有的构造函数,二是类定义中含有一个该类的静态私有对象,三是该类提供了一个静态的共有的函数用于创建或获取它本身的静态私有对象。原创 2014-04-08 22:40:56 · 949 阅读 · 1 评论 -
C#网络编程(同步传输字符串) - Part.2
C#网络编程(同步传输字符串) - Part.2服务端客户端通信在与服务端的连接建立以后,我们就可以通过此连接来发送和接收数据。端口与端口之间以流(Stream)的形式传输数据,因为几乎任何对象都可以保存到流中,所以实际上可以在客户端与服务端之间传输任何类型的数据。对客户端来说,往流中写入数据,即为向服务器传送数据;从流中读取数据,即为从服务端接收数据。对服务端来说,往流中写入数据转载 2014-04-09 08:59:49 · 690 阅读 · 0 评论 -
C# interface与abstract class区别
C# interface与abstract class区别一、abstract classabstract 声明抽象类抽象方法,一个类中有抽象方法,那么这个类就是抽象类了。所谓的抽象方法,就是不含主体(不提供实现方法),必须由继承者重写。因此,抽象类不可实例化,只能通过继承被子类重写。二 interface 声明接口,只提供一些方法规约,不提供任何实现;不能用public、abstract等修饰,无字段、常量,无构造函数。三、区别1.interface中不能有字段,而abstract class原创 2014-04-09 18:19:55 · 8503 阅读 · 0 评论 -
C#网络编程(异步传输字符串) - Part.3
C#网络编程(异步传输字符串) - Part.3这篇文章我们将前进一大步,使用异步的方式来对服务端编程,以使它成为一个真正意义上的服务器:可以为多个客户端的多次请求服务。但是开始之前,我们需要解决上一节中遗留的一个问题。消息发送时的问题这个问题就是:客户端分两次向流中写入数据(比如字符串)时,我们主观上将这两次写入视为两次请求;然而服务端有可能将这两次合起来视为一条请求,这转载 2014-04-09 09:01:34 · 542 阅读 · 0 评论 -
C# 线程间操作
this.Dispatcher.Invoke(DispatcherPriority.Normal, new System.Action(() => { }));原创 2014-10-27 10:37:46 · 835 阅读 · 0 评论