当前位置:首页 > Windows程序 > 正文

C#基础知识(base、this、new、override、abstract、virtual、static)

2021-05-26 Windows程序

本文主要来讲解一下C#中,自己觉得掌握的不怎么样或者用的不多,不太熟悉的关键字,主要包括base、this、new、override、abstract、virtual以及针对static字段和static构造函数之间的执行问题。

base关键字

base 关键字用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数、实例方法和实例属性访问器中:

调用基类上已被其他方法重写的方法。

public class Father { public virtual void Say() { Console.WriteLine("Father Say"); } } public class Son : Father { public override void Say() { base.Say(); Console.WriteLine("Son Say"); } }

指定创建派生类实例时应调用的基类构造函数。

public class Father { public string Name { get; set; } public Father() { Name = "Father"; } } public class Son : Father { public Son() : base() { } }

从静态方法中使用 base 关键字是错误的。

技术分享

this关键字

其用于引用类的当前实例,也包括继承而来的方法,通常可以隐藏this:

限定被相似的名称隐藏的成员

public class Person { public string Name { get; set; } public int Age { get; set; } public Person(string Name, int Age) { this.Name = Name; this.Age = Age; } }

将对象作为参数传递到其他方法

public class Person { public string Name { get; set; } public int Age { get; set; } public Person(string Name, int Age) { this.Name = Name; this.Age = Age; } public void CallTest(Person person) { Console.WriteLine(person.Name+person.Age); } public void Call() { CallTest(this); } }

声明索引器

public class Person { string[] PersonList = new string[10]; public string this[int param] { get { return PersonList[param]; } set { PersonList[param] = value; } }

new关键字

一、new运算符

1、new一个class时,new完成了以下两个方面的内容:一是调用new class命令来为实例在托管堆中分配内存;二是调用构造函数来实现对象初始化。

2、new一个struct时,new运算符用于调用其带构造函数,完成实例的初始化。

3、new一个int时,new运算符用于初始化其值为0。

4、 new运算符不可重载。

5、new分配内存失败,将引发OutOfMemoryException异常。

二、new修饰符

new 关键字可以显式隐藏从基类继承的成员。 隐藏继承的成员时,该成员的派生版本将替换基类版本。 虽然可以在不使用 new 修饰符的情况下隐藏成员,但会生成警告。 如果使

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/71313.html