读书笔记之 -->"命名空间"
2006-03-12 13:05
218 查看
C#程序中,每提及一个“名称”,编译器就要对这个“名称”进行“决议(resolve)”;简言之,就是要让
这个“名称”可见(visible);
举例说明一下:
Console.WriteLine("Hello ,EdgarSun!");
此时编译器将无法对Console这一名称进行“决议”;using指令提供了一种解决方法,如using System;
便是告诉编译器到System命名空间中查找无法决议的“名称”;另一种做法是明确(全饰名称full qualified
name)告诉编译器到何处寻找这个“名称”,System.Console.WriteLine("Hello,EdgarSun!");
举一个简单的命名空间的例子:
namespace N1
{
public class A{…} //N1.A
}
namespace N2
{
public class A{…} //N2.A
}
类A定义于各自的命名空间(namespace),现在类A对整个程序来说不再是可见的了。而如若我们在程序
中同时“开启”(曝光expose)两个命名空间,那么unqulified name A将会导致编译错误。此时必须使用
“全饰名称”,如N2.A a;
另外,N1和N2可以相同,编译器认为我们想在原先存在的命名空间中加入新声明(declare);
还有一种方法是使用别名(alias);
namespace N3
{
using N1;
using N2;
using A1 = N1.A;
using A2 = N2.A;
class B
{
A1 a1;
A2 a2;
}
}
再补充一点,别名(alias)仅在当前的命名空间中有效。
这个“名称”可见(visible);
举例说明一下:
Console.WriteLine("Hello ,EdgarSun!");
此时编译器将无法对Console这一名称进行“决议”;using指令提供了一种解决方法,如using System;
便是告诉编译器到System命名空间中查找无法决议的“名称”;另一种做法是明确(全饰名称full qualified
name)告诉编译器到何处寻找这个“名称”,System.Console.WriteLine("Hello,EdgarSun!");
举一个简单的命名空间的例子:
namespace N1
{
public class A{…} //N1.A
}
namespace N2
{
public class A{…} //N2.A
}
类A定义于各自的命名空间(namespace),现在类A对整个程序来说不再是可见的了。而如若我们在程序
中同时“开启”(曝光expose)两个命名空间,那么unqulified name A将会导致编译错误。此时必须使用
“全饰名称”,如N2.A a;
另外,N1和N2可以相同,编译器认为我们想在原先存在的命名空间中加入新声明(declare);
还有一种方法是使用别名(alias);
namespace N3
{
using N1;
using N2;
using A1 = N1.A;
using A2 = N2.A;
class B
{
A1 a1;
A2 a2;
}
}
再补充一点,别名(alias)仅在当前的命名空间中有效。
相关文章推荐
- 《从0到1》读书笔记第一章"未来的挑战"第1记:把握潮流风向
- <input type="image"> 和 <img> 用法区别
- #include<filename.h>和#include"filename.h"的区别
- spring property标签中的 ref属性和ref 标签有什么不同? 如下:<property name="a" ref="b" />
- 使用<a href="../answer/StuAnswer.jsp?Sid=<%=Sid %>&Eid=1">shuxue</a> 注意
- 【html】<a href="#">、<a href="">
- vi 匹配单词"\<"和"\>"
- Windows核心编程<读书笔记十七>Applnst程序详解
- <html xmlns="http://www.w3.org/1999/xhtml">是啥?
- 上传附件<input type="file">规则
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- c语言中头文件#include <stdio.h>和#include "stdio.h"有什么区别?
- <Effective C++>读书笔记-1
- <jsp:useBean class="" >
- 读书笔记-->Java虚拟机垃圾收集算法
- 关于出现Don't know how to iterate over supplied "items" in &amp;amp;lt;forEach&amp;amp;gt;异常
- 当php内置函数需要以字符串格式调用&quot;$this-&gt;fun名&quot;类内函数时写法
- 如何理解<base href="<%=basePath%>">
- linux shell 中"2>&1"含义
- ibatIS的<dynamic prepend="WHERE">原理,是判断前一个AND字母是否存在