您现在的位置是:首页 > 正文

C#-2 C#程序

2024-02-29 11:37:44阅读 0

C#教程icon-default.png?t=M4ADhttps://www.xin3721.com/eschool/CSharpxin3721/

一 C#程序是一组类型声明

C#程序或DLL的源代码是一组一种或多种类型声明。
对于可执行程序,类型声明中必须有一个包含Main方法的类。
命名空间是一种把相关的类型声明分组并命名的方法。是类在程序集中逻辑上的分组。


二 Main:程序的起始点

每个C#可执行程序必须带有Main方法。
每个C#程序的可执行起始点在Main中的第一条指令。

static void Main()
{
    语句 . . .
}

三 C#类型

3.1 类型是一种模板,是一种活动的数据结构

类型是一个用来创建数据结构的模板。类描述了其代表的该类数据结构的特征。
类是一个能存储数据并执行代码的数据结构,包含数据成员和函数成员。
数据成员:存储与类或类的实例相关的数据。数据成员通常模拟该类所表示的现实事物的特性;
函数成员:它执行代码,通常会模拟类所表示的显示事物的功能和操作。

3.2 C#预定义类型

C#提供了16种预定义类型,包括13种简单类型和13种非简单类型;

13种简单类型包括:

  • 11种数值类型:不同长度的有符号和无符号整数;浮点数类型float和double,decimal;
  • 一种unicode字符类型char;
  • 一种布尔类型bool;

3种非简单类型包括:

  • string:一个unicode字符数组
  • object:所有其他类型的基类
  • dynamic: 使用动态语言编写程序集时使用

3.3 用户定义类型

  • 类 class
  • 结构 struct
  • 数组 array
  • 枚举 enum
  • 委托 delegate
  • 接口 interface

3.4 实例化类型,创建对象

从某个类型创建实际的对象,称为实例化该对象


四 栈stack和堆heap

程序运行时,它数据必须存储在内存中。一个数据项需要多大的内存,存储在何处及如何存储都取决于该数据项的类型。
运行中的程序使用两个区域来存储数据:栈和堆。

4.1 栈stack

栈是一个内存数组,是一个(Last-In First-out)后进先出的数据结构。
系统管理所有的栈操作。
栈存储几种类型的数据:

  • 某些类型变量的值;
  • 程序当前的执行环境;
  • 传递给方法的参数。

栈的特征:

  • 数据只能从栈的顶端插入或删除;
  • 把数据放到栈顶称为入栈(push);
  • 从栈顶删除数据成为出栈(pop);

4.2 堆heap

堆是一块内存区域,在堆里可以分配大块的内存用于存储某类型的数据对象。
堆里的内存可以以任意顺序存入和移除。
虽然程序可以在堆里保存数据,但并不能显示地删除他们。CLR的GC(Grabage Collector)在判断出程序的代码将不会再访问某数据项时,自动清除无主的堆对象。


五 值类型和引用类型

类型决定了对象在内存中的存储位置--栈或堆。
按照类型的对象在内存中存储方式的不同,类被分为值类型和引用类型:

  • 值类型只需要一段单独的内存,用于存储实际的数据;
  • 引用类型需要两段内存,第一段存储实际的数据,位于堆中,第二段是一个引用,指向数据在堆中的存放位置。

5.1 存储引用类型对象的成员

引用类型对象的数据部分始终存放在堆里。
值类型对象或引用类型数据的引用部分可以存放在堆里,也可以存放在栈里,取决于实际环境。


六 变量

变量是一个名称,表示程序执行时存储在内存中的数据。
C#提供了4种变量:

  • 本地变量:在方法的作用域保存临时数据,不是类型的成员;
  • 字段:保存和类型或实例相关的数据,是类型的成员;
  • 参数:用于从一个方法到另一个方法传递数据的临时变量;
  • 数组元素:同类数据项构成的有序集合的一个成员,可以为本地变量,也可以为类型的成员。

6.1 变量声明

变量声明定义了变量,并完成了两件事:

  • 给变量命名,并为它关联一种类型;
  • 让编译器为它分配一块内存。

网站文章

  • 用java语言求前50个素数_显示前50个素数

    package my.group.mapreduce1;import java.util.Scanner;public class Djsi {public static void main(String[] args){int NUMBER_OF_PRIMES = 50; //设置输出素数的个数int count = 0; //计数int number = 2; //从2开始查找Syst...

    2024-02-29 11:37:14
  • 记录网页制作中遇到的问题及解决办法(长期更新)

    1.html在浏览器打开后出现"白边"原因:浏览器默认边距值不是0解决:在<head></head>内加入以下内容:<style type="text/css">*{margin:0;padding:0;}</style>

    2024-02-29 11:37:08
  • 【Python】实现csv文件转json文件

    import json import pandas as pd # 读取CSV文件 csvData = pd.read_csv(r&#39;testData.csv&#39;, header = 0)...

    2024-02-29 11:37:02
  • 计算机游戏专业宣传语,游戏的广告词_游戏推广广告词

    现在有很多的游戏,电脑或者手机上的都很多,在每一款游戏推出的时候,都会用创意的广告词进行推广,吸引人玩游戏。下面是学习啦小编为你整理的游戏的广告词,希望对你有用!最新游戏的广告词1.狭路相逢,谁与争锋...

    2024-02-29 11:36:33
  • 概率论——几何随机变量

    几何随机变量 1 定义   对于独立的重复试验,每次试验成功的概率为p,0≤p≤1p,0\le p \le 1p,0≤p≤1,我们知道nnn次试验成功的次数符合参数为(n,p)(n,p)(n,p)的二项分布。现在考虑随机变量XXX,XXX表示重复试验直到试验首次成功为止需要的试验次数,则有: P{X=n}=p(1−p)n−1 ...

    2024-02-29 11:36:26
  • 基于SSM框架疫情隔离酒店管理系统

    基于SSM框架疫情隔离酒店管理系统

    任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,基于Java语言设计并实现了疫情隔离酒店管理系统。该系统基于B/S即所谓浏览...

    2024-02-29 11:36:21
  • Mysql高级四 之 优化SQL步骤

    Mysql高级四 之 优化SQL步骤

    优化SQL步骤 在应用的的开发过程中,由于初期数据量小,开发人员写 SQL 语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多 SQL 语句开始逐渐显露出性能问题,对生...

    2024-02-29 11:35:52
  • Jmeter基础之---jmeter基础概念

    Jmeter基础之---jmeter基础概念

    JMeter 介绍: 一个非常优秀的开源的性能测试工具。 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来。 从性能工具的原理划分: Jmeter工具和其他性能工具在原理上完全

    2024-02-29 11:35:46
  • zabbix优化,配合文件,zabbix_get命令

    一.配置文件优化 server端配置文件添加如下 StartPollers=160 #zabbix_server的进程数 StartPollersUnreacheable=80 #默认情况下,ZABBIX会启用指定进程用于探测某些不可达主机的(含IPMI场景);若使用场景中含有代理端,建议保持默认;若直接agent较多,可视具体情况调整 StartTrappers=20 #Tra...

    2024-02-29 11:35:39
  • python pycharm的安装教程

    python pycharm的安装教程

    python是解释器,pycharm是编辑器,编辑代码的。pycharm安装的前提是必须要先安装好python两个文件的安装路径最好都不要在C盘下,为了同一个电脑上安装多个版本的python 建立了与...

    2024-02-29 11:35:34