类型的各种成员

讲到了很多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

关于部分类

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



转载于:https://www.cnblogs.com/CallMeTommy/archive/2011/07/27/2113204.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值