C#基础概念总结

1、.NET Framework概念

2、 C#的含义;

3、什么是面向对象编程;

4、Visual Studio开发工具;

5、.NET程序运行的机制;

1、.Net Framework概念

在学习一个新的知识之前,个人觉得首先,你得大致的知道,你学的新知识中的一些关键性的概念,即使只是一个模糊的印象,也比盲人摸象要来的实在;

首先第一点要明确一个概念,.Net它是一个程序开发的平台,就像你做菜的厨房一样,在这个平台之上,你可以使用它支持的程序开发语言(如C++、C#),开发出运行在Windows系统之下的程序,另外还可以创建Web应用程序、Web服务;

厨房里面为我们提供了丰富的工具(各种厨具),而这个平台中也为我们提供了丰富的代码库,这些代码库,可以大大的提高我们开发程序的速度;

厨房中我们可以使用电饭祸、电饭煲等工具来做饭,具体看自己的使用习惯。而在这个平台上我们则可以使用各种程序的开发语言来做出我们想要的程序,你可以使用C++、C#等高级编程语言,而不用再去学习一门新的语言;

现在随着Windows Phone的普及,我们也可以在.Net的平台之下,创建WP的应用程序,而且使用VS开发工具中的一个Mono插件,我们还可以不使用java语言,在Windows上开发Android的应用程序,当然IOS的应用也可以;

2、 C#的含义

  C#是一种高级的面向对象的高级语言,它是微软公司,专门为使用.NET平台而创建的,因为它是最近几年才发展起来的,所以它吸取了许多 其它语言的教训,并整合了许多其它语言的优点特性;

3、什么是面向对象编程

面向对象编程是相对于面向过程编程而言的,它们都是编程的一种思想,一开始我以为它们是对立的,经过后来的了解,它们其实是相辅相成的,基于面向对象思想所开发出来的程序中,在它的源代码中肯定有面向过程思想的代码;

因为面向对象的编程思想,只是为我们提供了一种编程的体系结构,其中具体的实现,还是要用面向过程的思想来做,换句话说,就是面向对象给我们设立了一种编程的整体的思想,而具体要实现一些功能的话,还是要用面向过程的思想;

4、Visual Studio开发工具

Visual Studio是一个集成的开发环境(IDE),就像java的eclipse一样,它为我们创建.NET程序,提供了最大的便利,使我们在开发和调试程序的时候,得到效率的最大化,它包含一些例如明显的语法错误,可以智能的识别出来,还可以智能的联想出我们只输入了一点的类名和方法名;

5、.NET程序运行的机制

使用.NET平台所开发出的程序,是运行在.NET平台之上的;也就是所说,如果我开发出了一个.NET程序,我把程序发布出去了,而你的电脑要是没有安装,.NET的平台的话,你就运行不了我的程序,当然安装过后就可以了;

这种运行机制,似乎有些麻烦,但是它却可以带来很多的好处,比如说它降低了程序和系统的相关联性;以前的程序大多都是只能在单独的系统之下运行,例如我开发的Windows系统下的一款程序,在Mac下是不可能运行的,如果想要在Mac下执行,就需要在Mac的平台下,重新的开发程序,这样的话大大的增加了软件开发的周期和成本;于是NET平台的出现,就显得很有必要了,它开发出的程序,是运行在它的平台之下,而这个平台是可以移植到其它系统之下的(虽然目前还没有);

.NET程序的运行,要通过二次编译;首先将源代码编译成CIL(Common Intermediate Language通用中间语言)代码,在运行程序的时候,.NET中的JIT(Just In Time)编译器,就会把CIL编译成,专用于当前操作系统和目标机器结构的本机代码,程序得以执行;这样做比之前的程序的效率会有所降低,但是那些都是微乎其微的,基本可以忽略,随之,却带来了诸多的好处;比如我们可以使用任何语言来开发.NET程序,因为只要找到这种语言和CIL和共性,在第一次编译时加以修改就可以了;

JIT有许多的好处,例如它在编译CIL的时候,是需要的时候才会编译,这样大大的降低了,系统资源的消耗。而且它还会根据系统硬件的差别,在编译时做出相应的调整,这样在硬件配置比较低的PC上,程序也可以流畅的运行;

C#基础概念总结的更多相关文章

  1. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  2. TCP/IP基础概念及通信过程举例

    TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...

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

    Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...

  4. 快速入门系列--WCF--01基础概念

    转眼微软的WCF已走过十个年头,它是微软通信框架的集大成者,将之前微软所有的通信框架进行了整合,提供了统一的应用方式.记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winfo ...

  5. 理解 angular2 基础概念和结构 ----angular2系列(二)

    前言: angular2官方将框架按以下结构划分: Module Component Template Metadata Data Binding Directive Service Dependen ...

  6. JavaBean 基础概念、使用实例及代码分析

    JavaBean 基础概念.使用实例及代码分析 JavaBean的概念 JavaBean是一种可重复使用的.且跨平台的软件组件. JavaBean可分为两种:一种是有用户界面的(有UI的):另一种是没 ...

  7. RabbitMQ基础概念详细介绍

    http://blog.csdn.net/column/details/rabbitmq.html 转至:http://www.ostest.cn/archives/497 引言 你是否遇到过两个(多 ...

  8. linux设备驱动归纳总结(二):模块的相关基础概念【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-59415.html linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10 ...

  9. linux设备驱动归纳总结(一)内核的相关基础概念【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-59413.html linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxx ...

  10. 什么是JavaScript闭包终极全解之一——基础概念

    本文转自:http://www.cnblogs.com/richaaaard/p/4755021.html 什么是JavaScript闭包终极全解之一——基础概念 “闭包是JavaScript的一大谜 ...

随机推荐

  1. 淘宝网站上的 HTTP 缓存问题两则

    在阅读本文前推荐你先阅读我的前两篇文章< 扼杀 304,Cache-Control: immutable>和<关于缓存和 Chrome 的“新版刷新”>:下面要说的两个问题是在 ...

  2. 练习:javascript轮播图效果

    javascript轮播自动播放切换滑过停止,上一页/下一页 <!DOCTYPE html> <html lang="en"> <head> & ...

  3. java获取上个星期第一天和最后一天

    package com.goldcn.jzgmanageplat.b2b.controller; import java.text.SimpleDateFormat;import java.util. ...

  4. Thread和Runnable的区别

    Runnable源码 Thread源码 结论 Thread实现了Runnable接口的类,使得run支持多线程. 因类的单一继承原则,推荐使用Runnable接口实现多线程

  5. centos 6 部署Nodejs

    线上环境需要一套nodjs,没话说,那就部署唠. 一.下载编译包.解压.软链 nodjs历史版本连接:https://nodejs.org/zh-cn/download/releases/ cd /u ...

  6. java学习笔记01-环境配置

    需要先下载java的jdk,jdk是java的开发工具包,jre是java的运行环境,jdk里面都会带有jre的. 打开www.java.com,点击免费下载就行.之后默认安装就行了 1.设置JAVA ...

  7. Java开发之@PostConstruct和@PreDestroy注解

    从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreConstruct.这两个注解被用来修饰一个非静态的 ...

  8. 在右键菜单中加入BitLocker重新上锁功能

    当使用BitLocker给磁盘上锁后,可以通过命令:manage-bde -lock d: -forcedismount 将已经解锁的磁盘重新上锁,如果觉得每次都通过命令行写命令很麻烦,那可以通过修改 ...

  9. Haystack-全文搜索框架

    Haystack 1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsear ...

  10. c语言宏定义详解

    1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数 ...