C#基础概念总结
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#基础概念总结的更多相关文章
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- TCP/IP基础概念及通信过程举例
TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...
- Jmeter基础之---jmeter基础概念
Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...
- 快速入门系列--WCF--01基础概念
转眼微软的WCF已走过十个年头,它是微软通信框架的集大成者,将之前微软所有的通信框架进行了整合,提供了统一的应用方式.记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winfo ...
- 理解 angular2 基础概念和结构 ----angular2系列(二)
前言: angular2官方将框架按以下结构划分: Module Component Template Metadata Data Binding Directive Service Dependen ...
- JavaBean 基础概念、使用实例及代码分析
JavaBean 基础概念.使用实例及代码分析 JavaBean的概念 JavaBean是一种可重复使用的.且跨平台的软件组件. JavaBean可分为两种:一种是有用户界面的(有UI的):另一种是没 ...
- RabbitMQ基础概念详细介绍
http://blog.csdn.net/column/details/rabbitmq.html 转至:http://www.ostest.cn/archives/497 引言 你是否遇到过两个(多 ...
- linux设备驱动归纳总结(二):模块的相关基础概念【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-59415.html linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10 ...
- linux设备驱动归纳总结(一)内核的相关基础概念【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-59413.html linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxx ...
- 什么是JavaScript闭包终极全解之一——基础概念
本文转自:http://www.cnblogs.com/richaaaard/p/4755021.html 什么是JavaScript闭包终极全解之一——基础概念 “闭包是JavaScript的一大谜 ...
随机推荐
- 浏览器录宏重放软件-iMacros
iMacros https://imacros.net/ iMacros v12 Now Available The world's most popular web automation, data ...
- mysql 以数组的形式插入更新表
在项目中用php+mysql,需要插入数据,但是数据库表字段又很长,如果用常规的insert into table (c) values ('dd')的话,将是很长的sql语句,而且一不小心,就弄错了 ...
- shell 批量检测远程端口
[DNyunwei@YZSJHL24-209 li]$ cat port.sh #!/bin/bash # ip=`cat iplist` for i in $ip;do port=`ssh -t $ ...
- Xvector in Kaldi nnet3
Xvector nnet Training of Xvector nnet Xvector nnet in Kaldi Statistics Extraction Layer in Kaldi ...
- 【原创】大叔经验分享(10)Could not transfer artifact org.apache.maven:maven. from/to central. Received fatal alert: protocol_version
maven编译工程报错 [ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.2:add-source (s ...
- Razor---服务器端标记语言
Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法<ul> @for (int i = 0; i < 10; i++) { < ...
- IE9以及以下不支持jquery ajax跨域问题
1.代码中加 jQuery.support.cors = true; 2. 设置ie浏览器 工具->Internet 选项->安全->自定义级别” 将“其他”选项中的“通过域访问数据 ...
- react 20180504
react 入门 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- ubuntu+github配置使用
2015年底开始学习Python,接触了git这个东西,会基础的使用,顺便在github上注册了账号 https://github.com/haoxr 今天重新整理一下配置使用的整个流程 1 gith ...
- C#使用NanUI或ChromiumFx碰到的坑(一)
最近在花时间封装一个Razor模板+NanUI的Winform组件,发现了有个神奇地方,,由于需要使用CfxResourceHandler,用于把对cshtml文件的请求,编译成html并返回给CEF ...