02-C#(基础)基本的定义和说明

简介: C#程序或DLL的源码是一组类型的声明 类:类型是一种模板,可以把类型想象成一个用来创建数据结构的模板。模板本身并不是数据结构,但它详细说明了该模板构造的对象的特征。 命名空间:它是一种把相关的类型声明分组并命名的方法。

C#程序或DLL的源码是一组类型的声明

:类型是一种模板,可以把类型想象成一个用来创建数据结构的模板。模板本身并不是数据结构,但它详细说明了该模板构造的对象的特征。

命名空间:它是一种把相关的类型声明分组并命名的方法。既然程序是一组相关的类型声明,那么通常会把程序声明在创建的命名空间内。

对于可执行程序,类型声明中必须有一个包含Main方法

下面是.Net中预定义的类型:

堆和栈

对于.Net平台来说内存中使用堆栈的概念来存放数据。
栈是一个内存数组,是一个LIFO(last-in First-out 后进先出)的数据结构。
栈中存储的数据类型:值类型数据,引用类型的地址, 程序当前的执行环境,传递给方法的参数。
栈的特征:数据只能从栈的顶端插入和删除,把数据放到栈顶称为入栈(Push),从栈顶删除数据称为出栈(POP),因此可以把栈想像成一个水杯。

栈桢

当一个方法被调用时,在栈顶分配了一块内存用于保存一定数据与方法相关的数据项,这块内存叫方法的栈桢。
栈桢中存放的数据有:返回地址(就是方法退出时在哪里继续执行)、分配内存的参数(就是方法的值参数)、方法调用相关的其他各种管理数据项。
当方法被调用时,它的整个栈桢被压入栈中,方法退出时,它的整个栈桢从栈中弹出。弹出一个栈桢有时也称为释放栈。

与栈不同,堆是一块内存区域,在堆里可以分配大块的内存用于存储某类型的数据,堆里的内存可以任意顺序存入和移除。但不能的删除它们。
CLR的自动GC(Garbage Collector,垃圾收集器)在判断出程序的代码将不会再访问某数据项时(该引用类型没有任何引用时),自动清除无主的堆对象。

堆中一般存放的是引用类型的实际数据而栈存放的是值类型。

值类型:只需要一段单独的内存,用于存储实际的数据。(因栈是一个内存数据,存放一些占用空间比较小的数据)

引用类型:它需要两段内存,1存储实际的数据,它总是位于堆中,2是一个引用,指向数据在堆中的存放位置。

对于一个引用类型,其实例的数据部分始终存放在堆里。
对于一个值类型对象,或引用类型数据的引用部分可以存放在堆里,也可以存放在栈里,这依赖于实际环境。

:以程序的角度来说程序的数据和功能组织为逻辑上相关的数据项和函数的封装集合,称之为类。
:以现实的角度来说对某些事物共同性的抽象的描述。
类是一个能存储数据并执行代码的数据结构,类的每个实例都是不同的实体。

变量:当声明定义变量,其内部完成了两件事:1.给变量命名,并为它关联一种类型。2让编译器为它分配一块内存。
常量:(Const)通常是一个预定义简单类型或期组成的表达式。它还可以是Null引用,但它不能是某对象的引用,因为对象的引用是在运行时决定的。常量中是不能重新赋值的。

参数
形参:是声明在方法的参数列表中而不是方法体中的本地变量。
实参:当代码调用一个方法时,形参的值必须在方法的代码开始执行之前初,初始化。
值参数:(传值)数据通过复制实参的值到形参的方式传递到方法。
引用参数:(传地址)使用Ref修饰符,实参必须是变量,在用作实参前必须被赋值。
输出参数: 使用out修饰符,用于方法体内把数据传出到调用代码,它们非常类似引用参数。每个输出参数在方法读取、返回之前必须被赋值,这就意味着参数的初始值是无关的。
参数数组:允许零个或多个实参对应一个特殊的形参,在一个参数列表中只能有一个参数数组,并且它必须是列表中最后一个。使用(Params)修饰符。

如果数组参数是值类型,那么值被复制,实参不受方法内部的影响。

如果数组参数是引用类型,那么引用被复制,实参引用的对象受到方法内部的影响。

每一天都是崭新的,我们的目标有多远,我们就能走多远,坚持!!
目录
相关文章
|
6月前
|
存储 C#
C#学习系列相关之数组(一)---数组的定义与使用
C#学习系列相关之数组(一)---数组的定义与使用
|
2月前
|
安全 C# 索引
C#一分钟浅谈:属性与索引器的定义
本文深入浅出地介绍了C#编程中的属性和索引器。属性让字段更安全,通过访问器方法在读写时执行额外操作,如验证数据有效性;索引器则赋予类数组般的访问方式,支持基于索引的数据访问模式。文章通过示例代码展示了如何定义及使用这两种特性,并提供了常见问题及其解决方案,帮助读者写出更健壮、易维护的代码。希望读者能从中学习到如何有效利用属性和索引器增强C#类的功能性。
97 12
|
6月前
|
存储 C# 索引
C#学习相关系列之数据类型类的定义(一)
C#学习相关系列之数据类型类的定义(一)
119 0
|
6月前
|
存储 C#
C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析
方法是一段代码,只有在调用时才会运行。 您可以将数据(称为参数)传递给方法。 方法用于执行某些操作,也被称为函数。 为什么使用方法?为了重用代码:定义一次代码,然后多次使用。
102 0
|
C#
MFC窗口风格 WS Window Styles中文说明及在c#中的定义使用
窗口风格(Window style) WS_BORDER 有边框窗口 WS_CAPTION 必须和WS_BORDER风格配合,但不能与WS_DLGFRAME风格一起使用。
1178 0
|
存储 JavaScript 前端开发
C#(.NET)面试题:做一个能自定定义输入命令的表格程序
C#(.NET)面试题:做一个能自定定义输入命令的表格程序
136 0
C#(.NET)面试题:做一个能自定定义输入命令的表格程序
|
C#
【C#】WPF的xaml中定义的Trigger为什么有时候会不管用,如Border的MouseOver之类的
原文:【C#】WPF的xaml中定义的Trigger为什么有时候会不管用,如Border的MouseOver之类的 初学WPF,知道一些控件可以通过定义Style的Trigger改变要显示的样式,但是经常遇到一些明明Trigger已经触发了,但是里面Setter设置的样式,却没有效果的问题。
1273 0