C#程序结构(学习笔记01)
C#程序结构
[原文参考官方教程]
https://docs.microsoft.com/zh-cn/dotnet/csharp/tour-of-csharp/program-structure
C#中的关键组织结构包括程序,命名空间,类型,成员和程序集
以下示例在 Acme.Collections 命名空间中声明 Stack 类:
using System;
namespace Acme.Collections
{
    public class Stack
    {
        Entry top;
        public void Push(object data)
        {
            top = new Entry(top, data);
        }
        public object Pop()
        {
            if (top == null)
            {
                throw new InvalidOperationException();
            }
            object result = top.data;
            top = top.next;
            return result;
        }
        class Entry
        {
            public Entry next;
            public object data;
            public Entry(Entry next, object data)
            {
                this.next = next;
                this.data = data;
            }
        }
    }
}
C#编译打包的程序集包括可执行程序和库,扩展名为.exe和.dll
编译成程序的语句,前提是包含main函数的程序,该实例为一个栈的实现程序,不包含main函数,只能编译为库文件
命令行窗口执行:
csc acme.cs
编译成库文件
命令行窗口执行:
csc /t:library acme.cs
创建一个使用acme.ll程序集的Acme.Collections.Stack类的程序:
using System;
using Acme.Collections;
class Example
{
    static void Main()
    {
        Stack s = new Stack();
        s.Push(1);
        s.Push(10);
        s.Push(100);
        Console.WriteLine(s.Pop());
        Console.WriteLine(s.Pop());
        Console.WriteLine(s.Pop());
    }
}
编译Example.cs程序文件并使用acme.dll程序集:
命令行窗口执行:
csc /r:acme.dll example.cs
编译后生成Example.exe可执行文件,运行输出:
100
10
1
!!实际运行会因为执行过快,命令框会一闪而过
使用 C#,可以将程序的源文本存储在多个源文件中。 编译多文件 C# 程序时,可以将所有源文件一起处理,并且源文件可以随意相互引用。从概念上讲,就像是所有源文件在处理前被集中到一个大文件中一样。 在 C# 中,永远都不需要使用前向声明,因为声明顺序无关紧要(除了极少数的例外情况)。 C# 并不限制源文件只能声明一种公共类型,也不要求源文件的文件名必须与其中声明的类型相匹配。
前向声明是C++的一种文件引用方式,用于解决文件之间相互引用的问题
C#程序结构(学习笔记01)的更多相关文章
- C++ GUI Qt4学习笔记01
		C++ GUI Qt4学习笔记01 qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概 ... 
- Redis:学习笔记-01
		Redis:学习笔记-01 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 1. Redis入门 2.1 ... 
- 软件测试之loadrunner学习笔记-01事务
		loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ... 
- SaToken学习笔记-01
		SaToken学习笔记-01 SaToken版本为1.18 如果有排版方面的错误,请查看:传送门 springboot集成 根据官网步骤maven导入依赖 <dependency> < ... 
- Solr6.7 学习笔记(01) -- 目录结构
		Solr解压后的目录结构 --contrib: Solr的一些扩展 --analysis-extras: 包含一些文本分析组件及其依赖 --clustering: 包含一个用于集群搜索结果的引擎 -- ... 
- PHP 学习笔记 01
		例子: 为什么要学PHP 主观原因: 前段时间在学校处理了毕业的一些事情,回到上海后开始了找工作的旅程.意向工作是WPF开发或者ASP.NET 作为后端的WEB开发. 陆陆续续一直在面试,其中有一家公 ... 
- [Golang学习笔记] 01 工作区和GOPATH
		Go语言3个环境变量: GOROOT:GO语言按照根路径,也就是GO语言的安装路径. GOPATH:若干工作区目录的路径.是我自己定义的工作空间. GOBIN:GO程序生成的可执行文件(executa ... 
- xml基础学习笔记01
		注意:刚刚看了网上对于XML中的标签,节点和元素?到底应该怎么表述?起初我也有这个疑惑,现在我的想法是:下面出现node的应称作节点,节点对象.element应称作元素,毕竟这更符合英文的本意.至于标 ... 
- Ext.Net学习笔记01:在ASP.NET WebForm中使用Ext.Net
		Ext.Net是一个对ExtJS进行封装了的.net控件库,可以在ASP.NET WebForm和MVC中使用.从今天开始记录我的学习笔记,这是第一篇,今天学习了如何在WebForm中使用Ext.Ne ... 
随机推荐
- vuex如何实现数据持久化,刷新页面存储的值还存在
			1.安装: npm install vuex-persistedstate --save 2.找到store/index.js import Vue from 'vue' import Vuex fr ... 
- element ui 合计/table show-summary
			在el-table 上面加上show-summary就可以对table的数据进行合计 但是上次出现了合计栏有的为空,有的合计不对的情况,如果出现的是空,那么说明你渲染的数据有undefine(即后台返 ... 
- 阿里云服务器在控制台配置网页强制https访问
			最近接触到一个新的网站,网站的访问方式,是http, 因此在浏览器打开的时候老是显示不安全.因此要配置https访问. 首先,先说明服务器是在阿里云的,域名也是阿里云的. 方法一 1 首先在阿里云的c ... 
- Remind Me
			创建2d人物:live2d 创建3d人物:adobe fuse 
- 第09组 Beta冲刺(3/4)
			队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ... 
- mysql性能测试-------重要!!!
			我们在做性能测试的目的是什么,就是要测出一个系统的瓶颈在哪里,到底是哪里影响了我们系统的性能,找到问题,然后解决它.当然一个系统由很多东西一起组合到一起,应用程序.数据库.服务器.中中间件等等很多东西 ... 
- Mac下epub电子书制作编辑器 : Sigil
			官方博客:https://sigil-ebook.com github项目地址:https://github.com/Sigil-Ebook V0.9.10下载:https://github.com/ ... 
- (2)PyCharm开发Flash项目之蓝图构建
			下面通过在PyCharm开发工具中创建一个简单的Flask项目来体会一下Flask的蓝图构建(Blueprint). 何谓蓝图:在Flask中蓝图就在大型应用中,将不同功能的模块(module)分开管 ... 
- 时间工具类DateUtil
			import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; impor ... 
- **80. Remove Duplicates from Sorted Array II 删除排序数组中的重复项 II
			1. 原始题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件 ... 
