基本数据类型

来源:互联网 发布:类似于淘宝的购物软件 编辑:程序博客网 时间:2024/06/05 10:20

C#中有两种数据类型

值类型:在栈中分配空间,由系统自动分配。
引用类型:在堆中分配空间,由程序员用“new”来分配空间

值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址。

值类型存取快,引用类型存取慢。

值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用。

栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放。

值类型继承自System.ValueType,引用类型继承自System.Object。

常见类型分类

  • 值类型
    • 枚举类型
    • 结构类型
      • 自定义结构类型
      • bool类型
      • 数值类型
        • decimal
        • 浮点型
          • float,double
        • 整数类型
          • sbyte,byte,int,uint,char,short,ushort,long,ulong
  • 引用类型
    • object,string,类,数组,委托,接口
  • 指针类型

1字节
bool, byte, sbyte 8位=8bits
2字节
short ,ushort, char 16位=16bits
4字节
int, uint, float 32位
8字节
long, ulong, double 64位
16字节
decimal 123位

类型转换

  • 隐式转换
    隐式转换:C# 默认的以安全方式进行的转换。本质是从小存储容量数据类型自动转换为大存储容量数据类型,例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。

    转换所需要的条件:    1.数据要兼容,都是值类型;     2.从取值范围小的往大的转;
  • 强制类型转换
    显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符。转换类型的范围大小和从属关系和隐式转换相反。显式转换会导致精确度会丢失,可能会导致数据出错,数据丢失或者转换失败,甚至无法编译成功。

  • 使用(类型名)变量名进行强行转换
    double speed=10.4f;    float minspeed=(float)speed;
  • 使用Parse转换
string name="123";int n=int.Parse(name);
  • 使用convert进行强制转换
string name="123";int m=Convert.ToInt16(num);

变量

变量:在程序运行中可以改变的量.
变量代表一个存储区域。
存储区域内存储的内容就是变量的值.

变量命名规则

只能由数字、字母、下划线或@组成,并且数字不能开 头,@只能用在开头。
不可以与系统保留字同名。
不能使用重复的变量名(C#大小写敏感)。
见名知意(规范)
骆驼命名法,第一个单词小写,后面单词的首字母大写