随笔分类 - C#
摘要:最近使用DllImport,从网上google后发现,大部分内容都是相同,又从MSDN中搜集下,现将内容汇总,与大家分享。大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用...
阅读全文
摘要:为什么要使用序列化?最重要的两个原因是:将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;按值将对象从一个应用程序域发送至另一个应用程序域。例如,序列化可用于在 ASP.NET 中保存会话状态,以及将对象复制到 Windows 窗体的剪贴板中。它还可用于按值将对象从一个应用程序域远...
阅读全文
摘要:.NET 中有两种方法进行JSON的操作分别需要引用不同的命名空间1.System.Runtime.Serialization.Json(System.Runtime.Serialization.dll)public class JsonHelper{ /// /// 生成Json格式...
阅读全文
摘要:静态类静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量。在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类;其次,它防止在类的内部声明任何实例字段或方法。静态类是自C# 2.0才引入的,C# 1.0...
阅读全文
摘要:这个能取大部分汉字的首字母, 但还不全, 有些UNICODE的汉字是取不到的, 要想取到所有汉字的首字母,最好是能做一个UNICODE汉字和拼音的对照表,通过对照表查.GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB2312收录了包括拉丁字母、希腊字母、日...
阅读全文
摘要:先回顾一下这两个关键词的用法.var是个语法糖,是在用var声明变量的那一刻就确定了其变量的类型.因为需要在声明的时候就确定其类型,所以要求在用var声明隐式局部变量的时候必须初始化该变量.编译器就是通过这种初始化的语法来确定变量的类型的.(同样属于编译时的强类型语法检查)dynamic 则是一种数...
阅读全文
摘要:只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{n,}$"。 只能输入m~n位的数字:。"^\d{m,n}$" 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。 只能输入非零的正整数:"^\+?[1-9]
阅读全文
摘要:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Collections;using System.Configuration.Install;using System.Collections.Specialized;using System.ServiceProcess;namespace IAU.Ser
阅读全文
摘要:Windows Data Type .NET Data TypeBOOL, BOOLEANBoolean or Int32BSTR StringBYTEByteCHARCharDOUBLE DoubleDWORDInt32 or UInt32FLOATSingleHANDLE(and all other handle types, such as HFONTand HMENU) IntPtr, UintPtr or HandleRef HRESULTInt32 or UInt32INTInt32LANGIDInt16 or UInt16LCIDInt32 or UInt32LONGInt32L
阅读全文
摘要:在C#中类型的转换分两种:显式和隐式,基本的规则如下。基类对象转化为子类对象,必须显式转换,规则:(类型名)对象。值类型和引用类型的转换采用装箱(boxing)或拆箱(unboxing)。子类转化为基类对象。基本类型互相之间转化可以用Convert类来实现。字符串类型转换为对应的基本类型用Parse方法,除了String类型外其他的类型都可以用Parse方法。用GetType可以取得对象的精确类型。子类转化为基类,采用隐式转换。下面来说说AS和IS操作符。as:用于在兼容的引用类型之间执行转换。is:检查对象是否与给定类型兼容。as在转换的同时兼判断兼容性,如果无法进行转换,则as返回null
阅读全文
摘要:格式项语法 每个格式项都采用下面的形式并包含以下组件: { 索引[,对齐][:格式字符串]} 必须使用成对的大括号(“{”和“}”)。 索引:索引是一个由0开始的整数,0表示第一个对应的对象,1表示第二,以此类推. Console.WriteLine("{0}+{1}={2}",23,45,23+4
阅读全文
摘要:很多知识是要强记下来,也许当时并不一定能真正的理解它的含义.打算以C#4.0为基础,列出C#常用的知识点.数据类型分为值类型和引用类型如果数据类型在它自己的内存分配中存储数据,则该数据类型就是“值类型”。“引用类型”在自己的内存分配中存储的是指向实际数据的内存地址指针.C#中的数据类型和.NET中的通用类型的对应所有的值类型的继承链上都有System.ValueType类型.值类型和引用类型在参数传递中的差异.虽然在参数传递时都是把实参所对应的存储空间的内容传给形参,但由于值类型和引用类型的参数对应的存储内容不同导致操作不同.对值类型的形参的操作
阅读全文
摘要:委托的定义格式:delegate type FunctionName(type p....);委托的定义一般放在命名空间下定义。如果放在类的内部定义,则在使用委托声明委托实例的时候需要加上类名.[代码]....
阅读全文
摘要:一个编译器错误提示:在命名空间中定义的元素无法显示的声明为 private, protected, protected internal。能在命名空间中定义的元素有:类(class),结构(struct),委托(delegate),接口(interface),枚举(enum)MSDN提示:protected internal 可访问性的意思是受保护“或”内部,而不是受保护“和”内部。我们的访问修饰符一共有5个级别public, private, protected, internal, protected internal1.命名空间下的元素的默认访问修饰符根据上面的红色错误提示,可以知道命名
阅读全文
摘要:[代码]C:B类的静态构造函数!B:A类的静态构造函数!A类的静态构造函数!A类的实例构造函数!B:A类的实例构造函数!C:B类的实例构造函数!静态类S!//静态类S的静态方法!C:B类的析构函数!B:A类的析构函数!A类的析构函数!
阅读全文
摘要:Array 类是支持数组的语言实现的基类。但是,只有系统和编译器能够从 Array 类显式派生。用户应当使用由语言提供的数组构造。注:不包含交错数组的内容。1.数组的申明及赋值既可以声明时指定数组的大小,也可以不指定大小,但数组是必须指定大小,要在什么地方指定大小看个人习惯了。[代码]2.对多维数组的理解/*创建一个三维数组*/[代码]这里的4表示有4个二维数组;3表示有3个一个维数组;2表示一维数组的长度为2 ;C#中所有类型的数组都继承至Array类,且数组是引用类型。数组的元素可以是值类型也可以是引用类型。一维数组和泛型集合他们在功能上有些相似。但数组的长度是固定,泛型集合却可以动态添加
阅读全文
摘要:委托的是含义,如果你学过C那么你可以把委托理解为C里面的函数指针,如果你没学过其他的语言,你可以理解为自定义类型. 声明委托要使用关键字delegate,代码如下 delegate void ShowName() 学过C的:上面相当于声明了一个类型为ShowName的指针,由于C里面的指针指向的是内存中的一个实际地址,具有一定的不安全型,C#在这里做了相应的改进,必须指向具有相同...
阅读全文
摘要:原文: http://www.cnblogs.com/lovebaobao/archive/2008/12/17/1356769.html 一说到.net的事件,也许你会想都说教程满天飞,一个被说烂了的东西还有什么可以说的啊?是啊,的确有很多好文章剖析事件,比如张子阳先生的C# 中的委托和事件 重温Observer模式--热水器·改 这两篇文章让我弄懂了委托、事件和观察者模式的基础知识,另外...
阅读全文
摘要:原文 http://www.cnblogs.com/allenlooplee/archive/2004/12/19/70230.html Q:在C#里,我们如何表达枚举类型? A:你可以使用enum关键字(keyword)来声明一个枚举类型(enum type): // Code #01 public enum Alignment { Left, Cente...
阅读全文
摘要:关联:类的实例持有着对其他对象的引用,没有整体与部分的意义。 组合:整体与部分的关系,且类的实例与其内部的对象在生命期上保持一致,同时创建和销毁。另外,组合不允许有组合回路,否则编译不报错,但是运行时将会出现StackOverflowException 的异常导致程序终止。 聚合:整体与部分的关系,且类的实例与其内部的对象不具有生命期的一致性,只是对另一个对象的引用,并不拥有其生命周期的管理权...
阅读全文