Unity学习笔记(1)-C#的相关笔记

一、C#值的类型

主要分为两种类型:

(1)值类型:直接存储在内存的栈上面
(2)引用类型:在内存的栈上面衍生出一个引用,在内存的堆上面才会存储具体的值
(3)指针类型(仅在不安全项目中使用)

值类型:

(1)内建类型,如int、bool等
(2)用户可自定义的struct类型及枚举enum类型

所有的值类型均继承于System.ValueType,而前面的类继承于System.Object,该类为C#语言的基类,所有的数据类型以及类均继承于System.Object

例:int类型正式的名字为System.Int32,二者互相等价,相同的还有bool和System.Boolean

ps1:注释的方法与C/C++相同 //与/**/,但是不同的有///三斜杠写法,一般用来注释方法
ps2:命名规则:变量以小写开头,而方法的第一个字母需要大写
ps3:F12可以跳转至定义区,查看具体的东西

访问修饰符:

C#中访问修饰符的用法与C/C++大致相同
(1)public
(2)private
(3)internal :访问仅限于当前程序集(.exe/.dll等)即只能在同一程序集中的文件中才能访问,并为提及到与命名空间的关系
(4)protected

枚举类型enum

例如

enum Days {Monday,Tuesday,Wenesday,Thursday,Friday,Saturday,Sunday}//这里结尾不用写;

这里可以通过 Days.Monday来调用,主要是用来限制某些变量的可能性

ps4:var不管声明任何类型的变量,都可以用var来代替,这样在开始时不用管是什么类型,在具体使用时会C#会自动转化为响应的类型(RUA!)

C#中的Class

以下为例子

class Person//class的默认访问修饰符为internal 
{
	//class内的默认访问修饰符为private
	int age;//成员变量,或者称字段

	public int Age
	{//属性的创建
		get;//写了get后便可以直接通过实例化对象调用Age的值,对象名.Age
		//当然这里可以写get{}然后向其中写函数体
		set;//写了set后便可以直接通过=修改Age的值,对象名.Age=10
		//这其中可以写一个value来表示该变量的值
	}
	
	public Person(int myAge)
	{
		age=myAge;
	}
	
	public int GetAge()
	{
		return age;
	}

	public static int GetFive()
	{//静态的方法和变量只能通过类来调用,不能通过实例化的对象来调用
		return 5; 
	}
}
C#中的Interface

只能包含方法、索引、属性和事件
以下为例子

interface Isuper
{//interface的名字最好以大写I开头,方便辨识
	int GetSuper();//在此处不实现,在类中实现	

}
C#中的封装和public、private

public:所有范围只要引用了这个方法或是class都能去访问,目的是让外部去调用
private:在class外部都不能访问,通常是为了保证程序的安全性,常用来使得外部无法访问机修改内部数据
internal:只有在同一程序集的文件中,内部类型或成员才可访问
protected:受保护成员在其所在的类中可由派生类实例访问
internal protected:访问仅限于当前程序集或从包含类派生的类型

ps:c# 访问修饰符 internal 和protected internal的区别

internal修饰的b在同一个项目中哪里都可以访问,而在另外一个项目中就不能访问,说明“同一程序集”指的是同一个项目;对于protected internal修饰的a在同一项目中哪里都可以访问,而在其它项目中只有在派生类可以访问,所以protected internal 修饰的成员变量是同一程序集或者派生类可以访问,也就是protected跟internal的并集,而不是交集。

你可能感兴趣的:(Unity学习)