C#中形态各异的class
2022/1/30 20:04:59
本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#