一、this关键字作用
1、this表示当前运行中的对象
Eg:
public class Person { public int age; public string name; public Person(int age,string name) { this.age=age;//把传递进来的12赋值给当前运行在内存中的对象的age属性,下同 this.name=name; Console.WriteLine("两个参数的构造函数被调用了"); } static void Main(string[] args) { Person p=new Person(,"Lucy"); } }
2、调用其他的构造函数
如上例再加上:
public Person(int age) { this.age=age; Console.WriteLine("只有一个参数,并且参数类型是int类型的构造函数被调用了"); } //this调用 public Person(int age,string name):this(age) { //this.age=age; this.name=name; Console.WriteLine("两个参数的构造函数被调用了");
}
//调用 static void Main(string[] args) {
Person p=new Person(,"Lucy");//先调用两个参数的构造函数,再调用一个参数的构造函数,再执行一个参数的构造函数,在执行两个参数的构造函数
}
二、部分类
1、必须在同一个命名空间中,类的名字要一致,被partial修饰的类叫做部分类,或伙伴类。
2、C#编译器在编译伙伴类的时候会编译成1一个类,所以在另外1个伙伴类中定义的变量可以在这个伙伴类中方法。
3、作用是分开管理,便于维护。
partial class Program { int num; } partial class Program { public void Test() { this.num=; } }
三、理解null
1、局部变量的值类型存在栈里面,引用类型存在堆里面。成员字段,不管是引用类型还是值类型都是存在堆里面对象里面。
2、理解一下代码
public class Person {
string name; public Dog dog=new Dog(); } public class Dog { public void Shot() { Console.WriteLine("旺旺"); } } static void Main(string[] args) { Person d=new Person(); d.dog.Shot(); }
3、只有引用类型的变量的值才能为null,值类型不能,引用类型的变量的值为null,就代表变量不指向空间中任何对象。
Person p=null; Person.name="jack";//p变量没有指向任何对象,所以不能成功赋值,这时候会报“未将对象引用设置到对象的实例”
声明:以上内容均属软谋原创,如需转载,请注明出处。