this关键字&Base关键字的使用:
this关键字:
1.用于什么场景:
【1】指代类的当前实例
【2】将对象作为参数传递给方法
【3】声明索引器
【4】扩展方法的第一个参数的修饰符
2.实际使用案例:
【1】指代当前实例对象:
某一个类的构造函数:“
public class Emploee
{
public string name;
public int age;
public string address;
public Emploee(string name,int age,string adderss) {
this.name = name;
this.age = age;
this.address = adderss;
}
}
【2】将对象作为参数传递给方法
public class Emploee
{
public string name;
public int age;
public string address;
public Emploee(string name,int age,string adderss) {
this.name = name;
this.age = age;
this.address = adderss;
}
public void Call() {
Temp.Example(this);
}
}
class Temp {
public static void Example(Emploee e) {
}
}
【3】声明索引器
什么是索引器:
定义一个索引器
public class Emploee
{
public string name;
public string hobb;
public string address;
public string this[int index]
{
set
{
switch (index)
{
case 0:
name = value;
break;
case 1:
hobb = value;
break;
case 2:
address = value;
break;
}
}
get
{
switch (index)
{
case 0: return name;
case 1: return hobb;
case 2: return name;
default:
throw new Exception("No!");
}
}
}
这样就实现了一个简单的索引器,这样就可以像数组一样访问我们的对象,当然我们也可以使用不同的参数作为我们的索引
【4】扩展方法的第一个参数的修饰符
比如说我们自己实现一个List的扩展方法:
public static List<Emploee> MyWhere(this List<Emploee> resource, Func<Emploee, bool> func)
{
var list = new List<Emploee>();
foreach (var item in resource)
{
if (func.Invoke(item))
{
list.Add(item);
}
}
return list;
}
我们在调用的时候无需传递第一个参数:
List<Emploee> emploees= new List<Emploee>();
emploees.MyWhere((x) => x.name=="xxx");
***Base关键字的使用;***、
1.使用场景:
【1】默认情况下子类调用父类的无参构造函数
【2】第一种方式使用base关键字指定使用哪一个基类构造函数
【3】this调用自身的构造函数,在必须初始化一些数据和不想让其他类调用的时候
2。简单的使用:
public class CtorExample
{
public CtorExample()
{
}
public CtorExample(int cs)
{
}
}
class ChildClass : CtorExample
{
private ChildClass() : base(20)
{
}
}
以上就是This关键字以及Base关键字的简单使用了。