c# 的namespace以及assembly
1 NameSapce
1 1个namespace里面可以有多个类
2 namespace和cs文件是多对多的关系。
3 调用另一个namespace的声明,可以使用using <namespace> ,然后直接调用类名,或者使用namespace.类名来调用
4 namespace支持别名(alias) using namespace = namespace.classname,如using mycar = consoleapplciation1.car;
5 namespace支持嵌套
2 Assembly
1 Assembly 两种类型,exe 或dll, 两种类型都可以被其他程序调用,得到内部的Class Type.
2 .net 的Assembly具有语言无关性,c#的程序可以调用或者继承vb.net编写的DLL/exe assembly中的type
3 C#中的type是由namespace.type决定的,如果两个assembly(dll/exe),中包含有相同的namespace.type,那么c#认为两者相同
4 Assembly有一个4位数的版本号 <major>.<minor>.<build>.<revision>
5 C#中的Assembly使用manifest文件以及自身来描述自身调用的其他Assembly,版本号以及内部包含的Type,Class等。
6 Assembly的组成部分: Win32的文件头/CLR文件头/CIL code /type metadata/manifest/resource文件
3 单文件和多文件Assembly
多文件Assembly一般包括资源文件(如bmp),.netModule文件(包括type metadata和CIL Code),这些文件由主dll的manifest文件中指定说明
4 Private Assembly
和application在同一个目录或者子目录下,如果在exe中指定了reference,则在第一次编译时,会将对应的dll拷贝到exe目录中,执行exe文件时,exe会从拷贝的dll中得到type.主要是c#中是不会通过注册表得到指定的dll.
Private Assembly的唯一标志为文件名+版本号
5 exe的configure文件 exe.config
1 如private assembly位于exe所在目录的子目录,则需要在config文件中指定目录名,如
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="MyLibraries"/>
</assemblyBinding>
</runtime>
</configuration>
如果是多个目录,则可以写为<probing privatePath="MyLibraries; MyLibraries\Tests"/>
6 Shared Assembly
同private的区别就是compile不会拷贝一个
相关文档:
利用WM_COPYDATA在应用程序间传递数据很简单,开销也小
一、传递数据部分
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace ThreeTorches
{
public struct Copydatastru ......
ü ref、out、与params
应该来说这三个关键在一般的编码过程中还是会不时涉及到的,所以不算什么“冷僻”的概念。有关三个参数修饰符的解释如下:
Ref:ref关键字让一个值类型的输入参数按引用传递。实际上,对于引用类型的参数,是否使用ref关键字,差别微乎其微。有一个例外是String类型的参 ......
C#画线控件的应用实例介绍之前我们要明白在C#中没有画线的控件,这里写了一个,大家分享。共有两个控件分别是画横线和画竖线的,关于怎么画斜线有兴趣的可以做一个大家分享。
C#画线控件之横线
using System;
using System.Collections;
using System.ComponentModel; ......
asp.net默认的编码是UTF-8
js文件里的编码也是UTF-8
当你要在aspx页面上进行传中文参数时会出现乱码
<-----request.aspx--接收参数页----->
<----response.aspx--传送参数页----->
例一:<a href="request.aspx?str=中国人"></a>
解决办法一:
1.可以和改webconfig的编码 如:
  ......
一、C#预处理器指令入门 #define NET11 //NET11,NET20,(必须放在文件第一行)
using System;
//… …
//… …
//… …
string sBeepType = s.Replace(sKey,"");
#if NET20
int.TryParse(sBeepType,out beepType); //在.net 2.0中才有的方法
#endif
#if ......