生活随笔
收集整理的這篇文章主要介紹了
C#中形态各异的class
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本篇是基本知識,老碼農請無視!!!
| 普通
| 靜態
| 抽象
| 密封
| 分部 |
修飾關鍵字
| 無
| static
| abstract
| sealed
| partial
|
構造函數調用時機
| 實例化(new)時
| 內部任意靜態成員調用時
| 子類實例化(new)時 | 實例化(new)時
| 實例化(new)時 |
包含成員
| 字段 屬性 方法 事件 索引器 運算符重載 自定義類型
| 靜態字段 靜態屬性 靜態方法 靜態事件 自定義類型 | 普通類所有的成員 抽象屬性
抽象方法 抽象事件 抽象索引器 | 與普通類所有的成員 | 與普通類所有的成員 |
特征
| 可實例化(new),可繼承 | 只有一份,直接用類名調用 | 必須子類實例化
| 不能有子類 | 實質就是把一個類分成多個部分來寫,類名相同 |
#region 普通類/// <summary>/// 普通類/// </summary>public class CommonClass{/// <summary>/// 自定義枚舉類型/// </summary>enum MyEnum{enum1,enum2}/// <summary>/// 自定義委托類型/// </summary>public delegate void MyDeleaget();/// <summary>/// 構造函數/// </summary>public CommonClass(){_arr = new double[10];}/// <summary>/// 字段/// </summary>private string _myField;/// <summary>/// 屬性/// </summary>public string MyProperty { get; set; }/// <summary>/// 方法/// </summary>public void MyMethod(){ }/// <summary>/// 事件/// </summary>public event MyDeleaget MyEvent;/// <summary>/// 運算符重載/// </summary>/// <param name="a"></param>/// <param name="b"></param>/// <returns></returns>public static CommonClass operator +(CommonClass a, CommonClass b){return new CommonClass() { MyProperty = a.MyProperty + b.MyProperty };}/// <summary>/// 索引器集合/// </summary>double[] _arr;/// <summary>/// 索引器/// </summary>/// <param name="index"></param>/// <returns></returns>public double this[int index]{get{return _arr[index];}set{_arr[index] = value;}}}#endregion#region 靜態類public static class StaticClass{/// <summary>/// 靜態構造函數/// </summary>static StaticClass(){Console.WriteLine("靜態類構造函數");}/// <summary>/// 靜態方法/// </summary>public static void StaticMethod(){Console.WriteLine("靜態類中靜態方法");}/// <summary>/// 靜態屬性/// </summary>public static string StaticProperty { get; set; }/// <summary>/// 自定義委托類型/// </summary>public delegate void MyDeleaget();/// <summary>/// 字段/// </summary>private static string _myField;/// <summary>/// 事件/// </summary>public static event MyDeleaget MyEvent;}#endregion#region 抽像類/// <summary>/// 抽像類/// </summary>public abstract class AbstractClass{public AbstractClass(){Console.WriteLine("抽象類構造函數");}/// <summary>/// 自定義委托類型/// </summary>public delegate void MyDeleaget();/// <summary>/// 屬性/// </summary>public string MyProperty { get; set; }/// <summary>/// 方法/// </summary>public abstract void MyMethod();/// <summary>/// 事件/// </summary>public abstract event MyDeleaget MyEvent;/// <summary>/// 索引器/// </summary>/// <param name="index"></param>/// <returns></returns>public abstract double this[int index] { get; set; }}#endregion#region 密封類/// <summary>/// 密封類/// </summary>public sealed class SealedClass{/// <summary>/// 構造函數/// </summary>public SealedClass(){Console.WriteLine("密封類構造函數");}/// <summary>/// 自定義委托類型/// </summary>public delegate void MyDeleaget();/// <summary>/// 字段/// </summary>private string _myField;/// <summary>/// 屬性/// </summary>public string MyProperty { get; set; }/// <summary>/// 方法/// </summary>public void MyMethod(){ }/// <summary>/// 事件/// </summary>public event MyDeleaget MyEvent;/// <summary>/// 運算符重載/// </summary>/// <param name="a"></param>/// <param name="b"></param>/// <returns></returns>public static SealedClass operator +(SealedClass a, SealedClass b){return new SealedClass() { MyProperty = a.MyProperty + b.MyProperty };}/// <summary>/// 索引器集合/// </summary>double[] _arr;/// <summary>/// 索引器/// </summary>/// <param name="index"></param>/// <returns></returns>public double this[int index]{get{return _arr[index];}set{_arr[index] = value;}}}#endregion#region 分部類/// <summary>/// 分部類1/// </summary>public partial class PartialClass{public PartialClass(){Console.WriteLine("分部類構造函數");}/// <summary>/// 自定義委托類型/// </summary>public delegate void MyDeleaget();/// <summary>/// 字段/// </summary>private string _myField;/// <summary>/// 屬性/// </summary>public string MyProperty { get; set; }/// <summary>/// 方法/// </summary>public void MyMethod(){ }/// <summary>/// 運算符重載/// </summary>/// <param name="a"></param>/// <param name="b"></param>/// <returns></returns>public static PartialClass operator +(PartialClass a, PartialClass b){return new PartialClass() { MyProperty = a.MyProperty + b.MyProperty };}/// <summary>/// 索引器集合/// </summary>double[] _arr;}/// <summary>/// 分部類1/// </summary>public partial class PartialClass{/// <summary>/// 事件/// </summary>public event MyDeleaget MyEvent;/// <summary>/// 索引器/// </summary>/// <param name="index"></param>/// <returns></returns>public double this[int index]{get{return _arr[index];}set{_arr[index] = value;}}}#endregion
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的C#中形态各异的class的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。