C#学习笔记(二)类、类型和变量

一、类、对象、类成员

1.类和对象的关系:对象是类经过“实例化”后得到的实体

2.类的三大成员:

  • 属性
  • 方法
  • 事件

3.静态成员和实例成员:

  • 静态(static)成员在语义上表示它是“类的成员”
  • 实例(非静态)成员在语义上表示它是“对象的成员”
  • 绑定(binding)指的是编译器如何把一个成员与类或对象关联起来

4."."操作符——成员访问操作符


二、C#语言的基本元素

  • 关键字(Keyword)
  • 操作符(Operator)
  • 标识符(Identifier)
    需要注意命名规范、大小写规范
    变量名用驼峰法(eg:myVariable),名称空间、类名、方法名用pascal法(eg:MyVariable)
    【和java有区别,在java里,方法名用驼峰法命名】
  • 标点符号
  • 文本(字面值)
    • 整数
      • 多种后缀
    • 实数
      • 多种后缀
    • 字符
    • 字符串
    • 布尔
    • 空(null)
  • 注释和空白
    • 单行注释 //
    • 多行注释 /* */

三、类型、变量、方法

【类型】也称为数据类型
【变量】是存放数据的地方,简称“数据”
【方法】旧称函数,也称为“算法”

C#是一种强类型语言,强类型语言指数据受数据类型约束严格的语言。

四、变量

从表面上看,变量的用途是存储数据。实际上,变量表示了存储位置,并且每个变量都有一个类型,以决定什么样的值能够存入变量。

变量一共有7种,分别是:静态变量、实例变量、数组元素、值参数、引用参数、输出形参、局部变量。

而狭义的变量也就是程序员通常说的变量指的是局部变量,因为其他种类的变量都有自己的约定名称。

简单来讲,局部变量就是方法体(函数体)里面声明的变量。局部变量在栈上分配内存。变量的默认值为0。


五、类型

C#的五大数据类型:
类 (Classes): 如Windows,Form,Console,String
结构体 (Structures): 如Int32,Int64,Single,Double
枚举 (Enumerations): 如HorizontalAlignment,Visibility
接口 (Interfaces)
委托 (Delegates)

C#类型的派生谱系:
引用类型:类、接口、委托
值类型:结构体、枚举

值类型的变量内含变量值本身。
引用类型也称为参考类型,和值类型相比,引用类型的变量不直接存储所包含的值,而是指向它所要存储的值,类似C中的指针。


六、堆栈

程序的内存空间分为栈空间和堆空间,值类型的数据在栈空间中分配,而引用类型数据在堆空间中分配。

【栈空间】是一种先进后出的数据结构。用于存储以下类型的数据:

  1. 某些类型变量的值
  2. 程序当前的执行环境
  3. 传递给方法的参数

【堆空间】是一块内存空间,在堆空间中可以分配大块的内存以存储某类型的数据对象。与栈不同,堆里的空间能够以任意顺序存入和移出。


七、拆箱和装箱

值类型之间的转换有隐式转换和显示转换。另外装箱和拆箱也属于一种类型转换。

【装箱】指的是把「栈」上的值类型的数据封装成一个object实例(隐式转换),放到「堆」上的过程

int a = 100;
object x = a;

在这里插入图片描述


【拆箱】指的是把「堆」上object实例里的值按照要求拆成目标类型的数据(显示转换),再存储到「栈」上的过程

int a = 100;
object x = a;
int b = (int)x;
Console.WriteLine(b);

在这里插入图片描述

装箱和拆箱都会损失程序的性能

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值