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. 导出CSV 换行问题。

    程序方面: 1.Windows 中的换行符"\r\n" 2.Unix/Linux 平台换行符是 "\n". 3.MessageBox.Show() 的换行符为 ...

  2. Educational Codeforces Round 33 (Rated for Div. 2) E. Counting Arrays

    题目链接 题意:给你两个数x,yx,yx,y,让你构造一些长为yyy的数列,让这个数列的累乘为xxx,输出方案数. 思路:考虑对xxx进行质因数分解,设某个质因子PiP_iPi​的的幂为kkk,则这个 ...

  3. 《尚学堂_史上最易懂的设计模式视频》--章节3 Iterator迭代 模拟列表

    广州尚学堂官网-|广州Java培训|Java培训机构|人工智能+Python培训|PHP培训|全栈工程师培训|UI设计培训|前端移动开发培训http://www.gzsxt.cn/ ==Iterato ...

  4. nmap简介和使用

    文章链接:https://blog.csdn.net/m1585761297/article/details/80015726 参考链接:https://www.cnblogs.com/nmap/p/ ...

  5. linear-gradient 纯CSS3项目价格表切换代码

    <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8&qu ...

  6. 使用font awesome制作网站常用社交工具联系方式图标

    在公司项目或者个人建站时经常会有这么一个需求,就是在网站的底部以图标的形式加入自己的某些常用社交联系方式,比如QQ.微信.微博.Twitter等等,如果采用传统切图的方式去制作这些图标会有两个缺点: ...

  7. 网络流24题——圆桌问题 luogu 3254

    题目传送门:这里 这是网络流24题里最简单的一道,我们从这里开始 虽然是网络流24题之一,但可以不用网络流... 本题采用贪心即可 有一个很显然的思想:在分配每一组时,我们都应当优先分配给当前可容纳人 ...

  8. Centos查看系统CPU个数、核心数、线程数

    1.查看 CPU 物理个数 grep 'physical id' /proc/cpuinfo | sort -u | wc -l 2.查看 CPU 核心数量 grep 'core id' /proc/ ...

  9. sass进阶—变量运算

    /*变量操作 (两个变量之间的运算符需要用空格隔开,否则会报错.)==,!= <,>,<=,>=+,-,*,/,% */ $width1:50px;$width2:100px; ...

  10. 【Bootstrap】 typeahead自动补全

    typeahead 这篇文章记录了我在使用typeahead的一些问题,不是很全,但是基本够用. Bootstrap提供typeahead组件来完成自动补全功能. 两种用法: 直接给标签添加属性 &l ...