c# 命名空间和程序集_C#教程

使用类的全权名:

System.Text.StringBuilder sb = new System.Text.StringBuilder();

上面的写法很繁琐,使用using语句引入命名空间:

using System.Text;
StringBuilder sb = new StringBuilder();
对于编译器来说,命名空间就是为一个类型附加一些分隔符号,使名称更有唯一性。
c#的using指令是可选的,完全可以用类型的完整名称代替,c# 的using指令时指示编译器为
每一个类型附加不同的前缀,确定匹配的完整名称。
CLR不知道命名空间的任何事,CLR知道类的完整名称来锁定具体在哪个程序集里面定义的,然后加载这个程序集,并对其操作。
c# 的using指令还支持另一种形式,允许为一个类型或命名空间定义别名:

using int = System.Int32;
int i = 0;
命名空间和程序集关系:

程序集是实现类型的文件,编译之后生成的。

命名空间是对类型的逻辑分组。

同一个命名空间中的类型可以是在不同的程序集中定义的。

同一个程序集中也可能包含多个命名空间,来对类型分组。

c#编译器可能比较关心命名空间,应为它需要确定类的完整名称,然后交给CLR。

CLR只关心程序集,会通过类的完整名称加载对应的程序集。

时间: 2024-09-14 03:01:37

c# 命名空间和程序集_C#教程的相关文章

C# 语言规范--1.12 命名空间和程序集

程序|规范|命名空间 除了依赖于几个系统提供的类(如 System.Console),到目前为止介绍的程序都是独立存在的.但更常见的情况是:实际的应用程序由若干不同的部分组成,每个部分分别进行编译.例如,企业级应用程序可能依赖于若干不同的组件,其中包括某些内部开发的组件和某些从独立软件供应商处购买的组件. 命名空间和程序集有助于开发基于组件的系统.命名空间提供一个逻辑组织体系.命名空间既用作程序的"内部"组织体系,也用作"外部"组织体系(一种表示向其他程序公开程序元

使用VS2010 C#开发ActiveX控件(下),完整代码打包下载_C#教程

其实如果我们不进行设置,只是修改了代码,运行程序以后,其出错界面如下图1所示: 开发ActiveX控件(下),完整代码打包下载_C#教程-vs2010使用教程 c"> 图1 抛出异常如下: ************** Exception Text ************** System.MethodAccessException: Attempt by security transparent method 'Rare.Card.Libary.Controls. ReadCardCo

.Net WInform开发笔记(三)谈谈自制控件(自定义控件)_C#教程

末日这天写篇博客吧,既然没来,那就纪念一下. 这次谈谈自制控件,也就是自定义控件,先上图,再说 1.扩展OpenFileDialog,在OpenFileDialog中添加各种文件(.txt,.jpg,.excel等等)的预览功能 开发笔记(三)谈谈自制控件(自定义控件)_C#教程-winform自定义控件"> 2.重写ListBox,增加折叠.鼠标背影.分类等功能 -----------------------------分割线-------------------------------

.Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用_C#教程

中午没事,把去年刚毕业那会画的几张图翻出来了,大概介绍Winform应用程序运行的过程,以及TCP协议在Winform中的应用.如果有Windows消息机制等基础,很好理解这两张图. (1)Winform应用程序运行结构图 开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用_C#教程-tcp ip协议 层结构图"> (2)TCP通讯协议在Winform程序中的应用示意图 熟悉整个程序的来龙去脉,编程的时候就会很轻松,不会云里雾里. 另附公司招聘面试题一份,用了几

详解C# TimeSpan 计算时间差(时间间隔)_C#教程

TimeSpan 结构  表示一个时间间隔. 命名空间:System 程序集:mscorlib(在 mscorlib.dll 中) 说明: 1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻.因此,你可以用DateTime值类型来描述任何在想象范围之内的时间.TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值, 其中的五个重载方法之一的结构 TimeSpan( int days, in

C# 获取程序集版本、文件版本_C#教程

一.获取程序集版本 程序代码 复制代码 代码如下: label版本.Text = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); 二.获取文件版本 程序代码 复制代码 代码如下: using System.Diagnostics; FileVersionInfo myFileVersion = FileVersionInfo.GetVersionInfo (System.Windows

mvc C# JavaScript LigerUI oracle实现用户的注册、登陆验证、登陆_C#教程

一.登录数据库,在数据库中创建表User00,并且插入数据. 表的字段分别为: Id(编号).Name(姓名).Grid(级别).Score(积分).Password(密码).Age(年龄).Code(邀请码).(其中编号是自动编号) 部分命令如下: select * from User00; /*查询User00*/ insert into User00 values('one','优',10000,'123',24); /*插入一行数据*/ update User00 set Grid='优

C#中Mutex对象用法分析_C#教程

本文实例讲述了C#中Mutex对象用法.分享给大家供大家参考,具体如下: C#语言有很多值得学习的地方,这里我们就来介绍C# Mutex对象,包括介绍控制好多个线程相互之间的联系等方面. 如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类. 我们可以把Mutex看作一个出租车,乘客看作线程.乘客首先等车,然后上车,最后下车.当一个乘客在车上时,其他乘客就只有等他下车以后才可以上车.而线程与C# Mutex对象

C#实现XML与实体类之间相互转换的方法(序列化与反序列化)_C#教程

本文实例讲述了C#实现XML与实体类之间相互转换的方法.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Data; using System.Xml; using System.Xml.Serialization; /// <summary> /// Xml序列化与反序列化 //