1.什么是密闭类、静态类?
1.1 密闭类是用sealed修饰的类,该类不能有子类。一般只用系统中的基本类才会用sealed修饰,比如string int等。
string定义图1.2 静态类是声明为static的类,该类不能实例化,并且该类的成员也必须由static声明。通常对类进行成员进行拓展使用比较多。
2.一个Demo来感受一下
using System;
namespace 拓展类
{
class Program
{
static void Main(string[] args)
{
//1.使用静态类直接调用
//ExString.ShowMsg("","你好");
//2.使用拓展类调用的方式
string obj = "你好";
obj.ShowMsg(obj);
Console.Read();
}
}
static class ExString
{
/// <summary>
/// 对string类型进行方法拓展,添加一个ShowMsg方法用来控制台输出一个值
/// </summary>
/// <param name="a"></param>
/// <param name="msg"></param>
public static void ShowMsg(this string a, string msg)
{
Console.WriteLine(msg);
}
}
}
上诉例子说明了给string类型进行方法拓展。
我们想要对类拓展一个方法,我们需要编写一个拓展方法的静态类,该方法的第一个参数的类型前面加上this 那么该参数类型就定义了拓展方法; 第一个参数起定义作用(对于拓展方法来说,对于类调用方法来说还是一个普通的形参)。这个其实是C#3.0提供的一个特性,我们C#喜欢提供这些语法糖,简化编写过程,提高开发效率。
3.小结
我们来思考下这个问题
是否可以编写一个类继承自String类?
网友评论