易截截图软件、单文件、免安装、纯绿色、仅160KB

C#类和C#结构体的关系

C#类:类是C# 中功能最为强大的数据类型,类也定义了数据类型的数据和行为。然后,程序员可以创建作为此类的实例的对象。
C#结构体:结构体是轻量型的类,使用开销相对于类较小。
C#类和C#结构体两者的关系:
1.数据类型:类和结构体都是数据类型,类是引用类型,结构体是值类型。
2.继承性:类可以继承和被继承,而结构体隐式继承于object,不可以继承(除接口以外)和被继承
3.构造函数:类和结构体都有默认(无参)构造函数,只不过结构体不能显示声明默认(无参)构造函数,
4.字段初始化:类可以对字段声明时赋值初始化,而结构体不可以(除const和static之外),结构体的字段必须在构造函数中进行初始化。
5.实例化:结构体实例化时可以不使用new,,如果不使用new,那么在初始化所有字段之前,字段将保持未赋值状态且对象不可用。而类必须使用new进行实例化。
如何选择C#结构体还是C#类   
讨论了结构与类的相同之处和差别之后,下面讨论如何选择使用结构还是类:  
1.堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些  
2.结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有   1000   个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。  
3.在表现抽象和多级别的对象层次时,类是最好的选择 
4.大多数情况下该类型只是一些数据时,结构时最佳的选择 ,struct 类型是一种值类型,通常用来封装小型相关变量组,例如,矩形的坐标或库存商品的特征。


相关文档:

C# 3.0新特性系列:隐含类型var

一.神奇的var
  在C#3.0中增加了一个变量声明var,这个声明和JavaScript 的 var类似,但也有不同。
  1. 相同点,它可以用var来声明任何类型的局部变量。
  2. 不同点,它仅仅负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,而且只能是局部变量。
  二.相同点
  它可以声明
var integer = ......

C# 使用PlaySound在移动设备上播放声音

使用 PlaySound 在移动设备上播放声音文件。此代码使用 System.Runtime.InteropServices
调用 Compact Framework 的 CoreDll.DLL 的 PlaySound 方法
关于播放实现:
        //播放标志
        private enum Flags
        {
 &n ......

C#入门

变量、常量及表达式变量和常量变量(静态、非静态、数组元素、值参数、引用参数、输出参数、局部变量)静态(static) 如 public static int x;  一旦静态变量所属的类被装载,直到包含该类的程序运行结束时它一直存在。非静态:不带有static修饰符声明的变量称为实例变量,如int a ;常量(attributes constnt-modifiers CO ......

C# 调用 c++ dll 的一些问题总结

1.c++的到处函数只要在函数申明的时候加个导出关键字就可以了
2.参数类型问题,
一般的c++中char * 对应 c#中的string
而c++中 char **类型的参数对应c#中 ref string 这种一般都是用来返回字符串的!
3.函数入口问题,一般会出现 "找不到入口点" 这个问题不是由你引起的,而是系统自己把名字改了,改成什么样的名字建议你用 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号