c# 学习总结

本文详细介绍了C#中的值类型与引用类型的区别、static关键字的使用场景及其特性、并发线程调用可重入函数的概念等核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. NET framework 的CLR,是一个多种编程语言可以相互调用的平台。可以看<CLR via C#> 这本书
2. 

C#的值类型包括:结构体(数值类型、bool型、用户定义的结构体),枚举,可空类型。
C#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。数组的元素,不管是引用类型还是值类型,都存储在托管堆上。
引用类型基本上相当于给出地址(和指针差不多),而值类型就是值。
值类型变量的赋值操作,仅仅是2个实际数据之间的复制。而引用类型变量的赋值操作,复制的是引用,即内存地址,由于赋值后二者都指向同一内存地址,所以改变其中一个,另一个也会跟着改变,二者就像绑定在了一起。
3.C#中没有拷贝构造函数,只能定义struct结构来实现。参考:点击打开链接
4. 
在.NET/C#中,一个类中的成员变量可以不初始化,也可以初始化,如果不初始化,编译器会按不同的类型给它们一个默认值,引用类型的是NULL值。当然最好是把情况掌握在自己手中,初始化一下比较好。
  如果自己初始化,对于普通的成员变量,就有两种情况,一种是在声明的时候就初始化,另一种是在构造函数中初始化。
  如果是在声明时就初始化了,而在构造函数中没有初始化,情况很正常。如果既在声明时初始化,又在构造函数中初始化,那么按先后顺序,以构造函数中初始化的为准。
5. C#中static类型的变量和方法
    

    1)、定义了变量和方法不知道什么时候该加上static修饰符。
     2)、static变量和方法与非static变量和方法有什么区别?
    3)、在一个类的静态方法里为什么不能访问该类的非静态成员变量和方法?
    4)、在一个类的非静态方法中为什么可以访问该类的静态变量和方法?
    5)、在静态方法中为什么不能用this?
    6)、静态构造函数有什么作用?
    基于以上问题,我发表自己的看法如下:
    1)、static变量及方法不用实例化对象就可以用类名.静态变量和类名.静态方法这种方式进行访问,这使得访问更加方便,不用手工      实例化对象。对于某些只读变量和方法来说很适合共享。
     2)、static与非static最大的区别就是static类型的变量及方法在调用的时候就在内存中分配了地址,且这个地址只有一份,故static      可以直接访问。而非static必需手工去实例化该类,以对象的方式去访问变量和方法。
     3)、在一个静态方法里去访问该类的非静态变量或方法,由于static是属于类本身的,是在类被调用的时候,static类型就已经生    成,而非static此时并没有生成,它不属于这个类本身,它是属于这个类的对象。故在没有实例化成对象的时候,在静态方法中访问非静态是根本找不到它们的,它不属于这个类。
     4)、在非静态方法中去访问静态,由于类被调用时,静态变量和方法就已经生成,也就是说它们属于这个类。既然已经存在,故不管是在静态方法中,还是非静态方法中都可以访问到它们。
     5)、this表明对象本身,而在静态方法中并没有对象概念存在,它只有类本身这个概念,它和对象是属于两种互拆的状态,即我中无你,你中无我的情况。也就是说你用对象名.静态变量或对象名.静态方法是不可访问的。
     6)、每个类都必须有构造函数,否则此类无法实例化成对象。而我们有时定义的类可以不写它的构造函数,这是因为编译器会帮我们加上一个静态的空构造函数。这样才能实例化。也可以用静态构造函数去初始化静态变量。
static的全部用法
6.  多个并发的线程可以调用同一个可重入的函数。
7. Winform中TrackBar是滑动条

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值