美文网首页
2019-12-17 C#总结

2019-12-17 C#总结

作者: 萱草的时间 | 来源:发表于2019-12-17 16:33 被阅读0次

类实例化
在使用类的非静态方法或属性时,必须将类实例化。把类比做盖房的图纸,如果要使用房子的功能,如住人,得有真实存在的房子实体才行,所以要想使用房子的功能,需要把图纸转化为房子实体,这个过程就称为实例化过程。
在使用类的静态方法或属性时,不用将类实例化。我想使用图纸上房子的长宽高时,我不必先建一座房子才能知道或使用它的长宽高,我可以直接把值从图纸上拿出来使用,只要是这个值,建的房子的长宽高都一样,所以就不需要实例化了,此种情况长宽高就为静态属性/方法。

值类型与引用类型
一个类型要么是值类型,要么是引用类型。区别在于数据存储的方式:对于值类型,数据存放在栈里。对于引用类型,引用存放在栈里而实际数据存放在堆里。

引用类型的变量存储对其数据(对象)的引用,而值类型的变量直接包含其数据。 对于引用类型,两个变量可引用同一对象;因此,对一个变量执行的操作会影响另一个变量所引用的对象。 对于值类型,每个变量都具有其自己的数据副本,对一个变量执行的操作不会影响另一个变量。

集合
集合包含三种:List IDictionary(KeyValue) IEnumable(枚举、foreach遍历)

??运算符
op1 ?? op2
op1 == null ? op2 : op1

?.运算符
使用?.运算符,会把int? count设置为null,而不是抛出一个异常。

System.Collections.Generic名称空间
这个名称空间包含用于处理集合的泛型类型,使用得非常频繁,所以用using语句配置它,这样使用时就不必添加限定符了。

default关键字
public MyGenericClass()
{
   innerT1Object = default(T1);
}
其结果是,如果innerT1Object是引用类型,就给它赋予null值;如果它是值类型,就给它赋予默认值。对于数字类型,这个默认值是0;而结构根据其各个成员的类型,以相同的方式初始化为0或null。default关键字允许对必须使用的类型执行更多操作,但为了更进一步,还需要限制所提供的类型。

封箱就是将值类型转换为引用类型,拆箱就是将引用类型转换为值类型。
例子:

//封箱
int num = 5;
object obj=i;
//拆箱
int numChai = (int)obj;

这里创建了一个int型的变量num,把5赋值给它,然后把它封箱在object类型的变量obj中。以这种方式封箱变量而创建的对象,包含值类型变量的一个副本的引用,而不包含源值类型变量的引用。要进行验证,可以修改源结构的内容,把对象中包含的结构拆箱到新变量中,检查其内容,即拆箱。
拆箱的值必须和它要转换的目标的变量有相同的类型。

ref和out都对函数参数采用引用传递形式——不管是值类型参数还是引用类型参数,并且定义函数和调用函数时都必须显示声明该参数为ref/out形式。两者都可以使函数传回多个结果。
两者区别:
两种参数类型的设计思想不同,ref的目的在于将值类型参数当作引用型参数传递到函数,是函数的输入参数,并且在函数内部的任何改变也都将影响函数外部该参数的值;而out的目的在于获取函数的返回值,是输出参数,由函数内部计算得到的值再回传到函数外部,因此必须在函数内部对该参数赋值,这将冲掉函数外部的任何赋值,使得函数外部赋值毫无意义。

相关文章

  • 2019-12-17 C#总结

    类实例化在使用类的非静态方法或属性时,必须将类实例化。把类比做盖房的图纸,如果要使用房子的功能,如住人,得有真实存...

  • C#语言特性发展史

    C#语言特性发展史 Intro 本文主要总结介绍C# 每个版本带来的不同的语言特性。 C#,读作C Sharp,是...

  • 【周总结】第七期第14周07号-醒 - 草稿

    2019-12-17 【本周计划/总结】 一、职业发展 情绪较为稳定 二、财务状况 每天一顿早饭约48元,午饭或者...

  • 【《Effective C#》提炼总结】提高Unity中C#代码

    【《Effective C#》提炼总结】提高Unity中C#代码质量的21条准则 这篇文章,将《Effective...

  • 2018-12-08

    C#知识点部分总结 1、 Console.WriteLine():打印到控制台并换行   2、 C#类型:值类型、...

  • 10月13日-4期C语言学习总结

    总结:今天开始学习C#的课程,代课老师用PPT将.NET和C#做了简述。向我们简介了关于C#的由来及应用。根据老师...

  • 无标题文章

    C#总结 在这个月的C#学习中,我遇到了很多问题,都寻求老师和同学解决掉了,在上课方面...

  • C# 面向对象总结

    C# 面向对象总结 Demo1: 使用C#查看和启动某进程 首先需要引入头文件: 代码如下: Demo2:使用简单...

  • 深入理解C#:编程技巧总结(一)

    具体转载地址见最下文 以下总结参阅了:MSDN文档、《C#高级编程》、《C#本质论》、前辈们的博客等资料,如有不正...

  • 8、List

    C# List排序总结[https://zhuanlan.zhihu.com/p/61869401] 一、常用方式...

网友评论

      本文标题:2019-12-17 C#总结

      本文链接:https://www.haomeiwen.com/subject/hctenctx.html