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. js无法对远程图片进行Base64转码

    web端图片转成Base64码报错 Image from origin 'http://114.215.87.123:8900' has been blocked from loading by Cr ...

  2. C#操作 word代码

    #region 读取word /// <summary> /// 读取word所有文字内容(不包含表格) /// </summary> /// <returns>w ...

  3. myeclipse中导入的js文件报错(出现红叉叉,提示语法错误)

    为了做一个页面特效,导入了一个jquery文件,怎想,myeclipse竟然报错说是语法错误,但是这个js文件我是从官网上下载的,不应该出错才对,百度谷歌之后终于找到了解决办法: 选中报错的js文件, ...

  4. Scalaz(35)- Free :运算-Trampoline,say NO to StackOverflowError

    在前面几次讨论中我们介绍了Free是个产生Monad的最基本结构.它的原理是把一段程序(AST)一连串的运算指令(ADT)转化成数据结构存放在内存里,这个过程是个独立的功能描述过程.然后另一个独立运算 ...

  5. 开始自学H5前端-第一天

    自从iOS工作丢了后 就萌生了自学这个想法 但是一直在纠结学哪一门语言好 我是计算机科学与技术专业的 其实对于我来说 学啥都算是有点基础的 但是被iOS坑惨了之后 就会不自觉的进行各个方向和前景分析 ...

  6. 【转】UTF-8汉字正则表达式

    原文链接:http://blog.csdn.net/wide288/article/details/30066639 $str = "编程";// if(!preg_match(& ...

  7. Training - An Introduction to Enterprise Integration

    What is EI? Enterprise Integration (EI) is a business computing term for the plans, methods, and too ...

  8. flex的用途

    一.可以利用flex来布局一个div在另一个div里面水平垂直居中 如:html代码: <div class="container"> <div class=&q ...

  9. Java2_J2EE体系架构

    J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition),它的核心是一组技术规范与指南,提供基于组件的方式来设计.开发.组装和部署企业应用.J2EE使用多 ...

  10. CSS3 模块

    CSS3 被划分为模块. 其中最重要的 CSS3 模块包括: 选择器 框模型 背景和边框 文本效果 2D/3D 转换 动画 多列布局 用户界面