类型的各种成员

讲到了很多C#基本类型,当然确实比较基础...
private const int n = 1; //常量
private readonly int n = 1; //只读字段
private static int n = 1; //静态字段

//类型构造器
static a()
//实例构造器
public a()

public string a1() //实例方法
public static a2() //静态方法

public int i { get { return 0; } set {} } //属性
public int this[string s] { get { return 0; } set { } } //索引器

关于类型访问

友元程序集(friend assembly)
比如一些特殊的方法 你不想完全公开,而你的合作伙伴之类的又要使用到
使用System.Runtime.CompilerServices 中InternalsVisibleTo 的attribute 来表明
然友源程序集就能访问 所有internal

using System;
using System.Runtime.CompilerServices;

[assembly:InternalsVisibleTo(
"Wintellect,Publickey=asdadasdasda")]
//这里会报一个警告
//警告 1 “assembly”不是此声明的有效特性位置。此声明的有效特性位置是“type”。此块中的所有特性都将被忽略。

internal class a { } //就可以访问啦..

ps: 这种情况其实很少,而且友元程序集只适合在发布时间相同的程序集, 如果错开时间太久,容易造成兼容性问题

成员可访问性

其实就是 public  protected internal private  

关于静态类

首先 static 不能应用于结构 因为clr 总是允许值类型实例化~
1. 静态类必须从 System.Object 派生, 也就是说你不能继承.
2. 不能实现接口..
3. 内部自然就必须全部静态成员
4. 不能作为参数 局部变量 字段

public static int a
{

}

编译器在编译的时候将 a 同时标记为 abstract sealed

关于部分类

这玩意儿,虽然一直都知道他.. 但是实际中确实没有用到过.  唯一能想象的情况 就是代码生成的时候用用



posted @ 2011-07-27 21:07  CallMeTommy  阅读(500)  评论(0编辑  收藏  举报