深入理解C#中this/partial/null的使用_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 深入理解C#中this/partial/null的使用

深入理解C#中this/partial/null的使用

 2013/9/9 23:11:47  软谋在线软件培训  博客园  我要评论(0)
  • 摘要:一、this关键字作用1、this表示当前运行中的对象Eg:publicclassPerson{publicintage;publicstringname;publicPerson(intage,stringname){this.age=age;//把传递进来的12赋值给当前运行在内存中的对象的age属性,下同this.name=name;Console.WriteLine("两个参数的构造函数被调用了");}staticvoidMain(string[]args)
  • 标签:C# 使用 理解

一、this关键字作用

1、this表示当前运行中的对象

Eg:

class="code_img_closed" src="/Upload/Images/2013090923/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('a45cfc9b-dd75-4b2a-99ae-b4924828f2f8',event)" src="/Upload/Images/2013090923/2B1B950FA3DF188F.gif" alt="" />
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(12,"Lucy");

  }

}
View Code

 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(12,"Lucy");//先调用两个参数的构造函数,再调用一个参数的构造函数,再执行一个参数的构造函数,在执行两个参数的构造函数
  }
View Code

 二、部分类

1、必须在同一个命名空间中,类的名字要一致,被partial修饰的类叫做部分类,或伙伴类。

2、C#编译器在编译伙伴类的时候会编译成1一个类,所以在另外1个伙伴类中定义的变量可以在这个伙伴类中方法。

3、作用是分开管理,便于维护。

partial class Program

{

    int num;

}

partial class Program

{

   public void Test()

   {

         this.num=12;

   }

}
View Code

 三、理解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();

}
View Code

3、只有引用类型的变量的值才能为null,值类型不能,引用类型的变量的值为null,就代表变量不指向空间中任何对象。

Person p=null;

Person.name="jack";//p变量没有指向任何对象,所以不能成功赋值,这时候会报“未将对象引用设置到对象的实例”

声明:以上内容均属软谋原创,如需转载,请注明出处。

 

 

 

 

 

发表评论
用户名: 匿名