【转】什么是.Net以及.Net的基本语法
什么是.Net?
1. 通常意义所说的.net有5个组成部分,但最主要的部分是.NET Framework, .NET Framework实际上是运行在Windows操作系统的一个应用程序,一个可供二次开 发的类库。.NET Framework包括以下组件:
公共语言运行库(CLR)
基础类库(BCL)
数据库访问组件(ADO.NET和XML)
基于ASP.NET编程框架的网络服务(Web Service)和网络表单(WebForms)
Windows桌面应用界面编程组件(WinForm).
2..NET是微软公司和sum公司的结果
3. 狭义的.net是指.net Framework,。.net Framework核心是CLR(公共语言运行时)
4..Net可以使用多种语言来开发应用系统
.Net的运行机制?
|
.net源代码 |
|
中间语言IL (Intermediate Language) |
|
CLR(Common Language Runtime)公共语言运行库 |
|
第二次编译 |
|
机器码(可执行的最终代码) |
在.net中,编译分为两个阶段:
1.把原代码编译为中间语言(IL)
2.CLR把IL编译为平台专用代码.
.Net常见的术语?
Mircorsoft中间语言(Microsoft Intermediate Languane)MSIL
通用类型系统(Common Type System) CTS
公共语言规范(Common Language Specification ) CLS
公共语言运行库(Common language Runtime) CLR
托管代码(Manged Code)
即时编译(JIT)
.Net能够使用多语言开发的原因(语言互操作的原因)?
1. 所使用的语言必须遵守公共语言规范。
2. 进行第一编译后,在中间语言里,类型都变成了统一的(通用类型系统)。
3. CLR进行二次编译,编译成机器码。
c#基本语法?
变量
1.〉在C#中声明变量用如下语法:
datatype identifier 即:数据类型 变量名
注意:
在C#中变量必须先声明后使用(强类型语言)
C#严格区分大小写
变量必须以字母或者下划线开头,但变量名中可以包含数字
Int num 对
Int _num 对
Int 2num 错
不能把C#关键字作为变量名
2.〉变量的作用域
变量的作用域就是变量在代码当中能起作用的范围。一般情况下有以下规则:
(1) 字段(变量)所属的类在某个作用域内,那么变量也在该作用域内起作用。
(2) 局部变量(指包含在函数中的变量)的作用域存在于该变量所在的块语句或方法结束的封闭的大括号之前。
(3) 在for,while或类似语句中声明的局部变量存在于该循环体内。
3.〉局部变量的作用域冲突
大型程序在不同的部分使用相同的变量名是很常见的,但要注意,同名的变量不能在程序的同一作用域声明两次。
using System; namespace ScopeTest
{ class Test
{ [STAThread]
static void Main(string[] args)
{
// int i=20;
// int i=30;//不可以,同名的局部变量不能在同一作用域内声明两次。
//以下的变量声明方法可以
for(int j=0;j<10;j++)
{
Console.WriteLine(j);
}
//在这个地方,j的作用域已经无效,所以可以重新声明一个j
for(int j=9;j>=0;j--)
{
Console.WriteLine(j);
}
}
}
}
4.〉字段和局部变量的作用域冲突
有的时候,可以区分名称相同、作用域相同的两个标识符。此时编译器允许声明第二个变量因为C#使变量之间有个基本的区分,把声明为类级的变量看作是字段,而把方法中声明的变量看作是局部变量。考虑下边的代码:
using System; namespace ScopeTest1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Test
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
static int j=20;
[STAThread]
static void Main(string[] args)
{
int j=30;
Console.WriteLine(j);
}
}
}
虽然在同一作用域内声明了两个j,但第一个j定义在类的级别上(static),在该类被删除以前都有效。此时,第二个变量j隐藏了同名的类级变量j,局部变量在起 作用。所以结果为 30。那么,如果要使用类级变量怎么办?可以使用object.fieldname。
原文链接:http://www.cnblogs.com/jiezhang/archive/2012/12/12/2814061.html
【转】什么是.Net以及.Net的基本语法的更多相关文章
- 【.net 深呼吸】细说CodeDom(8):分支与循环
有人会问,为啥 CodeDom 不会生成 switch 语句,为啥没生成 while 语句之类.要注意,CodeDom只关心代码逻辑,而不是语法,语法是给写代码的人用的.如果用.net的“反编译”工具 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- 纯CSS3实现的一些酷炫效果
之前在网上看到一些用纯CSS3实现的酷炫效果,以为实现起来比较困难,于是想看看具体是怎么实现的. 一.笑脸猫动画 实现效果如下: 这个实现起来确实比较麻烦,很多地方需要花时间,有耐心地调整. 1.先看 ...
- SQLSERVER将一个文件组的数据移动到另一个文件组
SQLSERVER将一个文件组的数据移动到另一个文件组 有经验的大侠可以直接忽视这篇文章~ 这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验 今天求助了QQ群里 ...
- Sql Server系列:分区表操作
1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...
- SQL Server表分区
什么是表分区 一般情况下,我们建立数据库表时,表数据都存放在一个文件里. 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在 ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- 【.net 深呼吸】细说CodeDom(7):索引器
在开始正题之前,先补充一点前面的内容. 在方法中,如果要引用方法参数,前面的示例中,老周使用的是 CodeVariableReferenceExpression 类,它用于引用变量,也适用于引用方法参 ...
随机推荐
- 把.zip文件转化为.tar.gz文件
工作中正好用到上传tar.gz文件,没有现成的转换工具,就写了方法转换 #encoding: utf-8import osimport tarfileimport zipfileimport osim ...
- Python 版本管理anaconda
下载安装 下载地址 :anaconda官网 下载后直接命令行安装,默认安装按enter 和yes bash Anaconda3-5.2.0-Linux-x86_64.sh 按照官网上下一步直接用con ...
- 873D. Merge Sort
Merge sort is a well-known sorting algorithm. The main function that sorts the elements of array a w ...
- ECharts使用:this.dom.getContext is not a function
echarts 画图报错 this.dom.getContext is not a function; 原因:因为在初始化echarts的时候,echarts.js规定只能使用dom原生方法获取标签, ...
- vue 组件传值
父组件传值给子组件 <list v-show="listLen" :listdata="list" :tipMsg="tipMsg" ...
- 05 - json转成树状结构
var jsonData = eval(`[ {"id":"4","pid":"1","name": ...
- 微信报错 config:fail.Error:invalid signature
config:fail.Error:invalid signature 微信公众号报这个错,appid等各项都配置好,经过一番折腾,发现原来ip白明单设置了不是该服务器的ID,重新设置后就可以了
- 安卓startActivityForResult用法
startActivityForResult的作用就是它可以回传数据,假如我们有两个页面A和B,点击A页面的一个按钮,进入下一个页面B,进入页面B后,进行设置操作,并在finish()或者back后, ...
- Docker的基本概念
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
- Three.js学习笔记02
1.改变相机的位置,让物体移动 通过下面的代码改变相机的位置: camera.position.x =camera.position.x +1; 将相机不断的沿着x轴移动1个单位,也就是相机向右移动. ...