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. 对于 ThreadLocal 的理解和应用

    首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的.各 ...

  2. ASP.NET Core 开发 - Entity Framework (EF) Core

    EF Core 1.0 Database First http://www.cnblogs.com/linezero/p/EFCoreDBFirst.html ASP.NET Core 开发 - En ...

  3. IIS8发布WCF接口中遇到的问题总结

    环境:系统Win8.1+VS2013+IIS8 在VS13中新建一个WCF服务应用程序,新建之后系统会默认给我们新建一个方法.

  4. Android Volley框架的使用(3)

    4. 加载图片 在实际应用中,经常需要从网络上下载并显示图片.Volley也提供了从网络下载图片的几种方法,这里主要介绍两种方法:ImageRequest和ImageLoader. (1) Image ...

  5. Facebook的Hack语言三大看点

    Hack语言主要有三大看点:类型化.异步.集合. Hack最基础的特性就是类型标注.PHP5已经开始支持对象的类型化,PHP7也提供了标量类型化声明.Hack提供了全面的类型标注支持,与其typech ...

  6. handlebars模板替换

    <html> <head> <meta charset="UTF-8" /> <!-- <script type="tex ...

  7. x8086汇编在显存中显示字符串

    题目:在屏幕中间显示绿色,绿底红色,白底蓝色的字符串‘welcome to masm!’ 80X25彩色字符模式显示缓冲区的结构: 在内存地址结构中,B8000H~BFFFFH共32KB的空间,为80 ...

  8. 一个bug

    bug原因: maven的project重新更新了一下project name,然后在更新过程中,卡死了,就强制退出.结果,就再也进不去eclipse了.看了eclipse的启动日志,各种报错,找不到 ...

  9. jQuery Panorama Viewer – 360度全景展示插件

    jQuery Panorama Viewer 这款插件可以帮助你在网站中嵌入全景图片.要做到这一点,首先只需要在页面中引入最新的 jQuery 库,以及 jquery.panorama_viewer. ...

  10. 如何垂直居中div?面试经常问到

    水平居中:给div设置一个宽度,然后添加margin:0 auto属性 div{ width:200px; margin:0 auto;} 让绝对定位的div居中 ;;;;} 重点来了! 水平垂直居中 ...