【转】什么是.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 类,它用于引用变量,也适用于引用方法参 ...
随机推荐
- 转 Singleton clr via c#3
/// <summary> /// 注意 只有在构造器没有副作用的时候才能使用这个技术 /// </summary> class Singleton { private sta ...
- Oracle expdp数据泵导出,并在文件上附加上日期格式
一.导出操作的计算机要安装Oracle Client(建议管理员版本) 二.在服务端创建目录 create directory dpdir as '目录'; 三.给目录赋权限 grant read,w ...
- c# 右下角弹出窗口
public partial class Form2 : Form { System.Diagnostics.Stopwatch sth = new System.Diagnostics.Stopwa ...
- [Swift]LeetCode107. 二叉树的层次遍历 II | Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- [Swift]LeetCode827. 最大人工岛 | Making A Large Island
In a 2D grid of 0s and 1s, we change at most one 0 to a 1. After, what is the size of the largest is ...
- [Swift]LeetCode891. 子序列宽度之和 | Sum of Subsequence Widths
Given an array of integers A, consider all non-empty subsequences of A. For any sequence S, let the ...
- [Swift]LeetCode967. 连续差相同的数字 | Numbers With Same Consecutive Differences
Return all non-negative integers of length N such that the absolute difference between every two con ...
- linux入门--类UNIX系统详解
有人说,这个世界上只有两种操作系统: UNIX 和类 UNIX 操作系统: 其它操作系统. 类 UNIX 系统(英文 Unix-like)既包括各种传统的 UNIX 系统,比如 FreeBSD.Ope ...
- C语言——Win10系统下安装VC6.0教程
学习一门语言最重要的一步是搭建环境,许多人搭建在搭建环境上撞墙了,就有些放弃的心理了:俗话说,工欲善其事,必先利其器:所以接下来我们进行学习C的第一步搭建环境; 第一步:先解压我们下载好的VC6.0软 ...
- fiddler抓取https失败解决方案
众所周知,Fiddler默认只能抓取到http请求,要抓取到https请求我们还需要FiddlerCertMaker插件的支持, 至于怎么使用fiddler抓https及插件的使用方式,大家可以去百度 ...