01 C#内部类
C#有内部类的概念,以前遇到的主要是一个类内部又定义了一个类这种用法,自己却基本不用这种方式,现在学习一下。比如:
这几行代码就最简单的内部类的例子,对于外部是private类型的变量,内部类是无法直接使用的,也就是内部类无法访问外部类的示例变量,所以在int前简单加上static,则内部类就能访问外部类的变量了。这里以变量举例,实际上对于方法也是,内部类无法访问外部类的实例方法。
接着:
public class OuterClass
{
public void OuterClassMethod()
{
k = 0;
}
public class InnerClass
{
public int k;
}
}
这里外部类有个方法,试图访问内部类的一个公共变量,则会提示k不存在,也就是外部类无法访问内部类的实例变量,这里和前面类似,静态的可以访问。
内部类实际上还是另外的类了,所以必须用类的实例来访问别人的非静态成员,因为静态成员是类本身的,能访问类,就能访问类的静态成员。
另外,外部类所有访问级别的静态成员对内部类始终可见,如外部类的一个private static void方法,内部类是可以调用的。而内部类则和普通类一样,如一个private static int参数,外部类是访问不到的。
这些介绍只是使用上的知识点,那么C#内部类主要好处是什么,为什么用内部类?根据网上找的,其作用主要是能更好封装,把内部类作为外部类的一个扩展,外部类则类似于内部类的一个命名空间。
02 C# params关键字
学习下params关键字 ,其主要作用是定义方法参数,参数数目是可变的。参数数组长度是可变的,但是必须是一维的,使用如下:
void Start ()
{
Test(1, 2, 3);
int[] paramsArray = new int[3] { 4, 5, 6 };
Test(paramsArray);
}
void Test(params int[] list)
{
for(int i = 0; i < list.Length; i++)
{
Debug.Log(list[i]);
}
}
params关键字后跟着是参数类型,如这里是int数组,传参的时候可以直接用逗号隔开参数,或者新生成一个参数数组。
03 C#委托和事件等再探
重新学习下C#的委托和事件等知识点,争取写一些例子深入学习。