了解索引器、密封类、扩展方法等
来源:互联网 发布:类似ninjame的软件 编辑:程序博客网 时间:2024/04/28 23:04
一、索引器
索引器可以根据数字、字符串等进行索引,也可以使用多个索引器参数,平时使用地不多,在.net框架中可以见到,比如string类的索引器可以获取某个位置的字符:
string s = "abc";
char c = s[1];
public char this[int index] { get; }
索引器与属性类似,也可以有get、set两部分,写法为this[...]。
class Person {
public string this[int x, int y] {
get {
return x + "-" + y;
}
set {
Console.WriteLine("x={0},y={1},value={2}", x, y, value);
}
}
}
var p1 = new Person();
p1[1, 2] = "p1";
var ps = p1[3, 4];
反编译索引器可以看到它也和属性一样分为get_Item和set_Item两部分,对于Person的索引器,get部分有x、y两个参数,set部分还多了隐藏的value参数。
二、密封类和静态类
a)密封类用sealed修饰,这样的类就不能被继承了。这也多见于.net框架中,比如string类型等,是出于安全方面的考虑,禁止了对基本类型的继承。
b)静态类用static修饰。静态类无法实例化、无法创建子类,只能声明static成员;但非静态类内部可以声明static成员
三、扩展方法
扩展方法可以用来为基本数据类型扩展,也可以为自定义类扩展。下面扩展了string.IsEmail()方法。
static class Ext {
public static bool IsEmail(this string s) {
return true;
}
}
扩展方法必须是static类,而且第一个参数类型必须是被扩展的类型。
字符串ps="ps@ps.ps";那么可以用下面的两种方式使用IsEmail扩展方法,因为IsEmail其实也是静态类的方法。
ps.IsEmail();
Ext.IsEmail(ps);
- 了解索引器、密封类、扩展方法等
- C#密封类、密封方法
- 密封类和密封方法
- C#==>密封类,密封方法
- C# 密封类和密封方法
- 黑马程序员--密封类和密封方法
- C#_密封类和密封方法
- C# 密封类和密封方法
- 抽象类与密封方法
- 密封类(sealed class)和密封方法(sealedmethod)
- C#入门10.6——密封类与密封方法
- 温故知新(3)密封类和密封方法sealed
- C#回顾学习笔记三十二:密封类和密封方法
- C#学习笔记14-密封类和密封方法
- [kotlin系列] (s2_3)扩展、数据类、密封类
- 密封类
- C#:抽象类和抽象函数, 密封类和密封方法
- Unity扩展GameObject等类中的方法
- bzoj3876 支线剧情【上下界最小费用可行流】
- spring boot 使用总结
- 【LeetCode】C# 22、Generate Parentheses
- 计算机视觉opencv的牛人博客和代码汇总-多学习学习
- Stm32-SWD下载调试配置
- 了解索引器、密封类、扩展方法等
- 数据结构-杂记--选择排序
- Mybatis中的insert获取自增主键的值
- 完整单例模式
- Nginx错误日志
- LeetCode-109. Convert Sorted List to Binary Search Tree
- CSS学习
- 并发和并行的区别
- volatile