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. DUMP3 企业级电商项目

    [开发模式]controller - service(合法校验问题) - dao   反过来也没问题 用户模块 登录 注册 用户名验证(实时反馈前端) 忘记密码 重置密码 退出登录 更新用户信息 获取 ...

  2. tensorflow 模型保存和加载

    使用 tf.train.Saver 保存:tf.train.Saver.save(sess, save_path, global_step=None, latest_filename=None, me ...

  3. linux磁盘空间满?

    磁盘空间满啦 找到项目的logs文件夹 进入logs文件夹,会看到很多access.log*文件. 在Xshell里,输入命令cd 到项目节点的logs文件夹 可能还需要清空下回收站.

  4. spring事务源码分析结合mybatis源码(一)

    最近想提升,苦逼程序猿,想了想还是拿最熟悉,之前也一直想看但没看的spring源码来看吧,正好最近在弄事务这部分的东西,就看了下,同时写下随笔记录下,以备后查. spring tx源码分析 这里只分析 ...

  5. 论文笔记:Cross-Domain Visual Matching via Generalized Similarity Measure and Feature Learning

    Cross-Domain Visual Matching,即跨域视觉匹配.所谓跨域,指的是数据的分布不一样,简单点说,就是两种数据「看起来」不像.如下图中,(a)一般的正面照片和各种背景角度下拍摄的照 ...

  6. Sublime text3 连接sftp/ftp(远程服务器)

    1.按下Ctrl + Shift + P调出命令面板2.在输入框中输入Sftp,按回车下载3.建一个新的文件夹放到左边的项目栏中4.右击文件夹,选中SFTP/FTP,点击Map to Remote5. ...

  7. 墨水屏 E-Paper module【转】

    转自:https://blog.csdn.net/smallmount123/article/details/77489196 https://www.digikey.com/product-deta ...

  8. 【easy】226. Invert Binary Tree 反转二叉树

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...

  9. 【原创】大叔经验分享(11)python引入模块报错ImportError: No module named pandas numpy

    python应用通常需要一些库,比如numpy.pandas等,安装也很简单,直接通过pip # pip install numpyRequirement already satisfied: num ...

  10. Vuforia的图像识别之后的服务器下载与ARKit的兼容性解决

    2017.12.12 遇到的问题: Could not produce class with ID 75 直接关闭unity里面的Strip engine code,解决下载ab时的崩溃问题 *Str ...