【转】什么是.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 类,它用于引用变量,也适用于引用方法参 ...
随机推荐
- The SQL Server instance returned an invalid or unsupported protocol version during login negotiatio
在使用.net core 连接sqlserver的时候遇到了这个问题 从字面意思理解大致是个什么版本不支持, 谷歌一下吧,ok,看到这个2000我就知道什么问题了 我的数据库还是2000的,总算把20 ...
- 编译部署 Mysql 5.7
1.环境准备 RHEL7.4(最小化安装) 64bit 2G 内存 (1G 内存编译将近一个小时) 磁盘空间 15G 以上. 配置为本地yum 源 从MySQL5.7版本开始,安装MySQL需要 ...
- [LeetCode] Reordered Power of 2 重新排序为2的倍数
Starting with a positive integer N, we reorder the digits in any order (including the original order ...
- Flutter 读写本地文件
文档 注意 安装 path_provider 插件后重启f5, 而不是等待热更新 demo import 'dart:io'; import 'dart:async'; import 'package ...
- 11、js 数组详细操作方法及解析合集
js 数组详细操作方法及解析合集 前言 在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总结,很多时候就算用过几次这个api,在开发中也很容易 ...
- Linux的小知识点
uname 2.whereis 3.df 4.which 5.apt和dpkg 6.service 7./etc/init.d/ 8.netstat -anptu 查看端口占用 9.netstat 1 ...
- java数组和集合的相互转换
由于在学习过程中经常碰到这么一个问题,就是java中几种装数据的容器之间的转换,所以写了这篇随笔专门来总结这些转换方法. 数组转集合: 1.遍历,最常用的方法,但是过程会繁琐一点 int arrs[] ...
- ubuntu Pycharm 2017 3.3 Active
1.打开激活窗口 2.选择 Activate new license with License server (用license server 激活) 3.在 License sever addres ...
- Android双击Home键返回桌面
转载自:http://blog.csdn.net/dl10210950/article/details/60866407 2中方式,都是监听返回键 一种 1 private long time; /* ...
- [AI开发]Python+Tensorflow打造自己的计算机视觉API服务
"与其停留在概念理论层面,不如动手去实现一个简单demo ." ——鲁迅 没有源码都是耍流氓github 前言 目前提供AI开发相关API接口的公司有很多,国外如微软. ...