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不会拷贝一个
相关文档:
1.c++的到处函数只要在函数申明的时候加个导出关键字就可以了
2.参数类型问题,
一般的c++中char * 对应 c#中的string
而c++中 char **类型的参数对应c#中 ref string 这种一般都是用来返回字符串的!
3.函数入口问题,一般会出现 "找不到入口点" 这个问题不是由你引起的,而是系统自己把名字改了,改成什么样的名字建议你用 ......
大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能呢?答案是肯定的,大家可以通过C#中的DllImport直接调用这些功能。
DllImport所在的名字空间 using System.Runtime.Inte ......
asp.net默认的编码是UTF-8
js文件里的编码也是UTF-8
当你要在aspx页面上进行传中文参数时会出现乱码
<-----request.aspx--接收参数页----->
<----response.aspx--传送参数页----->
例一:<a href="request.aspx?str=中国人"></a>
解决办法一:
1.可以和改webconfig的编码 如:
  ......
属性是类中可以像类的字段一样访问的方法。属性可以为类的字段提供保护,避免字段在对象不知道情况下被修改。C#通过属性来修改,读写或计算私有的字段的值。属性相当于对字段访问的封装。下例子可以清楚说明哟:
class Person
{
......
Eval("")和Bind("") 这两种一个单向绑定,一个双向绑定,bind是双向绑定,但需数据源支持
ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参 ......