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

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)修饰符。

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

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

时间: 2024-09-27 19:21:04

02-C#(基础)基本的定义和说明的相关文章

Docker系列:02.Docker基础使用

02.Docker基础使用 获取镜像: docker pull ubuntu 查找镜像:docker search ubuntu 查看镜像:docker images 删除镜像:docker rmi ubuntu,也可以用id,取前几位就行. 创建镜像:docker commit CONTAINER self:ubuntu CONTAINER为容器id 导出镜像:docker export xxxid > xxx.tar 导入镜像:docker import xxx.tar test/ubunt

2017-2-17,c#基础,输入输出,定义变量,变量赋值,int.Parse的基础理解,在本的初学者也能看懂(未完待续)

计算机是死板的固定的,人是活跃的开放的,初学c#第一天给我的感觉就是:用人活跃开放式的思维去与呆萌的计算机沟通,摸清脾气,有利于双方深入合作,这也是今晚的教训,细心,仔细,大胆 c#基础 1.Hello!World!!! 1 { //输出Hello!World!!; 2 Console.WriteLine("Hello!World!!!"); 3 //防止闪退; 4 Console.ReadLine(); 5 6 } 踏入IT世界的第一步,向世界问好 2.string定义变量 套用向老

vSphere部署系列之02——vSphere基础认知

vSphere部署系列之02--入门准备 一.关于服务器虚拟化 云计算是一个宏大的时代潮流,服务器虚拟化是这个潮流的河床. 虚拟化技术实现了物理资源的逻辑抽象和统一表示,通过它可以提高资源利用率,并能够根据用户业务需求的变化,快速.灵活地进行资源部署.目前主流的虚拟化厂商,是VMware.Citrixt和Microsoft三家, 其对应的服务器虚拟化产品分别为vSphere.SCVMM.XenServer.另外,基于Linux系统的开源的KVM虚拟化也有着广泛的应用. 每一款虚拟化产品,都有其自

02.Tensorflow基础用法

tensorboard   accuracy 1.什么是tensorflow? Tensorflow是一个编程系统,使用图(graphs)来表示计算任务,图(graphs)中的节点称之为op(operation) 一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor.Tensor 看作是一个 n 维的数组或列表.图必须在会话(Session)里被启动. tensorflow使用图(graphs)来表示计算任务,在被称之为会话(Session)的上下文(context)中执行图

8.02 PY基础之数字类型的内置方法

目录 PY基础之数字类型的内置方法 整型内置方法(int) 定义 常用操作+内置方法 存一个值or多个值 有序or无序 可变不可变 浮点型内置方法(float) PY基础之数字类型的内置方法 整型和浮点型统称为数字类型 整型内置方法(int) 定义 可以使用int()方法将纯数字的字符串转为十进制的整型 age = '19' age = int(age) print(age) # 19 type(age) = int x = int('11.1') print(x) # 报错 常用操作+内置方法

Python函数基础学习(定义、函数参数、递归函数)

1.本程序是测试函数的基础.函数的参数.递归函数的测试. 函数的参数有: 必选参数.默认参数.可变参数.命名关键字参数和关键字参数 #!/usr/bin/python # -*- coding: utf-8 -*- #当程序存在中文时,注释表明使用utf-8编码解释 #函数学习 print('函数定义') def result(x,n=2): s = 1 while n>0: n = n-1 s = s*x return s #使用def定义一个函数,def 函数名(参数): print(res

2017/05/02 java 基础 随笔

1.PrtSc键是截屏键   打开画图软件  ctrl+v就可以复制到 2.win7以上可以  在当前目录下shift+右键 3.junit和javaweb应用的main函数在哪里? java程序跑起来,一般是通过主类的main方法启动的.对于Web应用,是tomcat中按照Servlet等规范实现,我们的应用中写规范定义好的API逻辑,tomcat按请求去调用这些Servlet,从而启动Web应用.tomcat的主类是BootStrap类,也是以此类的main方法作为入口启动的,如果要验证你可

02函数-01-函数的定义和调用

1.定义函数 function abs(x) { if (x >= 0) { return x; } else { return -x; } } 如果没有return,函数执行完毕也会返回结果,不过结果是undefined. 由于在JS的世界中,函数也是一个对象,所以上述定义的函数实际上也是一个对象,而函数名则可视为指向该函数的变量. 所以上面的函数定义等价于: var abs = function (x) { if (x >= 0) { return x; } else { return -

1.2编程基础之变量定义、赋值及转换

Portal:http://noi.openjudge.cn/ch0102/ 一套水题,然而他们还是题 01-03是测基本数据类型存储空间大小 01 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int main() { int a; short b; cout<<sizeof(a)<<' '<<sizeof(b); return

02 计算机基础

仅为个人学习备忘,方便日后查阅   一.红帽认证培训 红帽5.0培训认证考试 基础(RHCE): RH033:基础 RH133: 操作系统管理 RH253:服务 红帽架构师(RHCA): RH401: RH423: (红帽自己的 LDAP) RH442: 系统调优 black art,硬件运行的基本原理,操作系统基本原理. 调优 (内存的使用,CPU的使用) RH436: 集群和存储 RHS333: 集群:基本的负载均衡集群,高可用集群,高性能集群 二.电脑是怎么运行的 程序如何运行 CPU只有