1.什么是密閉類晦炊、靜態(tài)類璧瞬?
?1.1 密閉類是用sealed修飾的類栈暇,該類不能有子類栗精。一般只用系統(tǒng)中的基本類才會用sealed修飾,比如string int等瞻鹏。
string定義圖
?1.2 靜態(tài)類是聲明為static的類悲立,該類不能實例化,并且該類的成員也必須由static聲明新博。通常對類進行成員進行拓展使用比較多薪夕。
2.一個Demo來感受一下
using System;
namespace 拓展類
{
class Program
{
static void Main(string[] args)
{
//1.使用靜態(tài)類直接調(diào)用
//ExString.ShowMsg("","你好");
//2.使用拓展類調(diào)用的方式
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類型進行方法拓展赫悄。
?我們想要對類拓展一個方法原献,我們需要編寫一個拓展方法的靜態(tài)類馏慨,該方法的第一個參數(shù)的類型前面加上this 那么該參數(shù)類型就定義了拓展方法; 第一個參數(shù)起定義作用(對于拓展方法來說姑隅,對于類調(diào)用方法來說還是一個普通的形參)写隶。這個其實是C#3.0提供的一個特性,我們C#喜歡提供這些語法糖讲仰,簡化編寫過程慕趴,提高開發(fā)效率。
3.小結(jié)
我們來思考下這個問題
是否可以編寫一個類繼承自String類?