易截截图软件、单文件、免安装、纯绿色、仅160KB

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不会拷贝一个


相关文档:

C# 调用 c++ dll 的一些问题总结

1.c++的到处函数只要在函数申明的时候加个导出关键字就可以了
2.参数类型问题,
一般的c++中char * 对应 c#中的string
而c++中 char **类型的参数对应c#中 ref string 这种一般都是用来返回字符串的!
3.函数入口问题,一般会出现 "找不到入口点" 这个问题不是由你引起的,而是系统自己把名字改了,改成什么样的名字建议你用 ......

C# 关键字extern用法

修饰符用于声明在外部实现的方法。extern 修饰符的常见用法是在使用 Interop 服务调入非
托管代码时与 DllImport 属性一起使用;在这种情况下,该方法还必须声明为 static,如下面的示例所示:[DllImport("avifil32.dll")]
private static extern void AVIFileInit();
注意
extern 关键字还可以定义外部程序集别名,使 ......

C#统计酷狗播放列表里歌曲播放的总时间

手机音乐播发器里有总文件总时间的统计,在酷狗播放器里找了一下没找到。那我想知道这些歌曲的总时间,该怎么办?
其实很简单,稍稍动动手,就能找到答案!
请参考如下步骤:
第一步,保存播放列表,把里面的歌曲保存到一个你喜欢的名字。
第二步,在播放列表上面点右键,到处播放列表到你找的到的地方。
经测试,最新 ......

c# virtual虚函数的new、override实现

c#中基类(父类)中的某方法若想在派生类(子类)中被重写(override),必须将基类中的方法定义为virtual,即虚函数。
若派生类将方法修饰为new,即有意隐藏基类中的方法。
下面看一组代码:
public class Father
{
public void hand()
{
Console.WriteLine("Father.hand");
}
}
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号