C#复习①

2016年6月15日

08:19

Main Introduction of C# 简单介绍C#

1. C# is very similar to Java (70% Java, 10% C++, 5% Visual Basic, 15% new)

C#与Java好比失散多年的姐妹,长得像但是非同一母亲所生。C# 在吸收Java同时又不忘记从C++那里借鉴些东西过来。不过除了借鉴其他语言之外,C#自身的特点也不能忽略。

  与Java相比,在C#中的新特性有不少:引用参数;堆栈分配对象;分块矩阵;委托;版本控制;lambda表达式;扩展方法;

  还有一些语法糖(Syntactic Sugar) : Component-based programming 基于组件编程;索引器;foreach循环;迭代器;类似SQL的查询表达式。

2.从Hello World看C#程序的结构

  文件命名: Hello.cs

  程序:

  using System;
  class Hello
  {
   static void Main() {
   Console.WriteLine("Hello World");
   }
  }

  编译指令: csc Hello.cs

  运行指令:Hello

  运行结果:Hello World

  首先程序导入namespace命名空间System,声明Hello类,程序入口Main, 控制台输出语句

  通过下面的图进行更详细的说明:

  一个C#程序可以有多个.cs文件组成,每个.cs文件下面可以包含多个命名空间,每个命名空间下面可以包含多个类。如果命名空间包含结构体,接口,委托,枚举,一个命名空间可在其他文件中重复打开。

  因此最简单的程序就是单个类,单个文件,默认命名空间。

3.下面给出简单的由两个文件组成的程序。

  

4.针对上述程序的分析:

  在Counter.cs文件中声明了

    函数Add
( 可见性为public,无返回值void,传入参数类型为int);

    函数Val
( 可见性为public,返回值为int,无参数)

  在Prog.cs文件中:

    函数的入口Main();

    调用了Counter中的Add方法和Val方法

  函数的编译指令分析:

csc /target:exe Counter.cs Prog.cs

    使用指令生成目标文件.exe(其中该exe文件可以自命名,如果仅仅指明生成.exe则默认命名问包含程序入口的Main()的文件名称,在此即生成Prog.exe)

  使用动态链接语言DLL运行程序的编译指令:

csc /target:library Counter.cs

    执行后生成 Counter.dll文件

csc /reference:Counter.dll Prog.cs

    执后生成Prog.exe

  后缀为exe文件的不同:

    在此需要清楚的是,在Java中通过编译生成的.exe文件是二进制文件,计算机可以直接运行

    但是在C#中虽然是.exe后缀,但是其文件类型为文本文件, 不能直接运行。

C#复习②友情链接:http://www.cnblogs.com/zpfbuaa/p/5586426.html

C#复习①的更多相关文章

  1. iOS总结_UI层自我复习总结

    UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...

  2. vuex复习方案

    这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.

  3. 我的操作系统复习——I/O控制和系统调用

    上篇博客介绍了存储器管理的相关知识——我的操作系统复习——存储器管理,本篇讲设备管理中的I/O控制方式和操作系统中的系统调用. 一.I/O控制方式 I/O就是输入输出,I/O设备指的是输入输出设备和存 ...

  4. 复习(1)【Maven】

    终于开始复习旧知识了,有输入必然要有输出.输入和输出之间的内化过程尤为重要,在复习的同时,真正把学到的东西积淀下来,加深理解. Maven项目概念与配置 Maven是一个项目管理和综合工具.Maven ...

  5. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  6. JS复习--更新结束

    js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...

  7. jQuery 复习

    jQuery 复习 基础知识 1, window.onload $(function(){});   $(document).ready(function(){}); 只执行函数体重的最后一个方法,事 ...

  8. jQuery5~7章笔记 和 1~3章的复习笔记

    JQery-05 对表单和表格的操作及其的应用 JQery-06 jQuery和ajax的应用 JQery-07 jQuery插件的使用和写法 JQery-01-03 复习 之前手写的笔记.实在懒得再 ...

  9. HTML和CSS的复习总结

    HTML(Hypertext Markup Language)超文本标记语言:其核心就是各种标记!<html> HTML页面中的所有内容,都在该标签之内:它主要含<head>和 ...

  10. 2017年1月1日 java学习第二天复习

    今天是新年的第一天,以前学习没有总结习惯,学习效率和成果都很不好.  学习的过程就是反复的复习和不断学习的过程,开始今天的学习总结   学习java的第二天. 今天学习了java最基础的一些内容,照着 ...

随机推荐

  1. 选择排序---直接选择排序算法(Javascript版)

    在要排序的一组数列中,选出最小(或者最大)的一个数与第1个位置的数交换:然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个 ...

  2. HTML的checkbox和radio的美化

    checkbox和radio的美化 checkbox: <style type="text/css"> input[type="checkbox"] ...

  3. 关于NPOI

    1,使用using(声明对象);using让局部对象失效,使用它时,要么其包含的类实现IDispose接口,要么他的父类实现IDispose接口. 2,模糊查询:%代表0到多个任意字符:_代表一个任意 ...

  4. Oracle--(Hierarchical Queries)层级查询

    内容来自: Oracle® Database SQL Language Reference 11g Release 2 (11.2) E41084-03. empolyees表来自hr方案,wareh ...

  5. 第二讲:WCF介绍(2)

    代码 https://yunpan.cn/cPns5DkGnRGNs   密码:3913   在上一讲中我们说到 在代码 当中  完成了 服务的寄宿. 这里我们说下 在实际的开发 当中 我们一般不会去 ...

  6. viewpager和fragment预加载的解决

    在使用Viewpager和fragment处理中会出现预加载的问题,最近看别人的代码,终于找到了一个很好的处理方法 能有效的解决预加载的问题,在fragment都继承一个重写setUserVisibl ...

  7. Oracle数据库,内置函数小结

    1.聚合函数 count(字段) // 求非空行的数量 max(字段) // 获取最大值 sum(字段) //求和 avg(字段) // 平均值 min(字段) // 最小值 2.转换函数 to_da ...

  8. windows不能显示此连接属性。windows management instrumentation (WMI) 信息可能损坏

    Windows Management Instrumentation (WMI)信息可能损坏错误修复 在 查看“本地连接”的属性,并切换到“高级”选项卡后,提示:“Windows不能显示此连接的属性. ...

  9. 【局部特征】ASIFT

    由于相机正面白摄物体时,相机的光轴方向可能发生变化,带来扭曲.而SIFT算法虽具有完全的尺度不变性,但不具有完全的仿射不变性,对拍摄角度发生大角度空间变化的图像特征提取有一定的局限性.ASift通过模 ...

  10. mysql出错:Access denied for user 'root'@'localhost' (using password: YES)

    网站链接mysql数据库的时候,连接不上,并报出错误:Access denied for user 'root'@'localhost' (using password:YES) 这是个相当恼火的问题 ...