LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#开发基础知识中对于类(class)的详解

admin
2024年3月26日 18:53 本文热度 510

类是自定义数据类型的蓝图,对现实生活中一类具有共同特征的事物的抽象。它是面向对象中的概念,是面向对象编程的基础。

是一种数据结构,包含了数据成员(字段、常量)和函数成员(方法、属性、索引器、事件、运算符、构造函数、析构函数和静态构造函数)。类的类型是支持继承。

1、类的声明

class是声明类的关键字,其格式为[访问修饰符] class 类名称 [: 父类名] { [访问修饰符] 数据成员函数成员 }。关于访问修饰符可以阅读前面文章访问修饰符。下面通过一段代码了解其定义:

public class PrintImage{#region  数据成员  /// <summary>  /// 打印机名称  /// </summary>  private string _Printername= string.Empty;;  /// <summary>  /// 图片  /// </summary>  public Image ImageDocument { get; set; }#endregion
#region  函数成员  /// <summary>  /// 构造函数  /// </summary>  public PrintImage()  {    // 方法体内容  }  /// <summary>  /// 析构函数  /// </summary>  ~ PrintImage()  {    // 方法体内容      }          /// <summary  /// 打印方法  /// </summary>   public Print(string printername,Image image)  {    // 方法体内容  }  /// <summary  /// 预览方法  /// </summary>  public Preview(Image image)  {    // 方法体内容  }  /// <summary>  /// 泛型方法  /// </summary>  /// <typeparam name="T"></typeparam>  /// <param name="parameter"></param>  public static void Show<T>(T parameter)  {    // 方法体内容  }#endregion}

2、构造函数

 构造函数是一个与类共享相同名称的方法,每个类只有一个通常设置在类中定义的变量的初始值。
构造函数类型有默认构造函数、参数化构造函数、复制构造函数、静态构造函数和私有构造函数。默认构造函数没有任何参数
using System;
namespace Fountain.Net.Base.Sample{    public class Cars    {        /// <summary>        /// 品牌        /// </summary>        private  string brand =string.Empty;        /// <summary>        ///        /// </summary>        public string Brand        {            get { return brand; }            set { brand = value; }        }        /// <summary>        /// 构造函数        /// </summary>        public Cars()        {            Console.WriteLine("已声明创建对象");        }        /// <summary>        /// 析构函数        /// </summary>        ~ Cars()        {            Console.WriteLine("对象已被删除");        }    }}//== 引用using System;
namespace Fountain.Net.Base.Sample{    class Program    {        static void Main(string[] args)        {            Cars cars=new Cars();            // 设置            cars.Brand="dotNet开发技术分享";            // 获取后输出            Console.WriteLine(string.Format("汽车品牌:{0}",cars.Brand));            //            Console.ReadLine();        }    }}
//== 结果已声明创建对象汽车品牌:dotNet开发技术分享
对象已被删除

3、析构函数

析构函数是一种特殊的成员函数,用于在对象被销毁时执行必要的释放资源。

析构函数特性:一个类只能有一个、无法继承或重载、无法调用、既没有修饰符,也没有参数。

//== 引用using System;
namespace Fountain.Net.Base.Sample{    class Program    {        static void Main(string[] args)        {            Cars cars=new Cars();            // 设置            cars.Brand="dotNet开发技术分享";            // 获取后输出            Console.WriteLine(string.Format("汽车品牌:{0}",cars.Brand));        }    }}
//== 结果已声明创建对象汽车品牌:dotNet开发技术分享对象已被删除

4、抽象类

abstract 关键字修饰符用于定义抽象类不完整,并且它仅用作基类。抽象类有几个特性,包括不能直接实例化不能被密封、允许但非必包含抽象成员
using System;
namespace Fountain.Net.Base.Sample{    /// <summary>    /// 定义动物抽象类    /// </summary>    public abstract class Animal    {        public abstract void Run();     }    /// <summary>    /// 定义由动物类派生猫    /// </summary>    public class Cat : Animal    {        public override void Eat()        {            // 输出            Console.WriteLine("小猫吃鱼");        }    }}//== 引用using System;
namespace Fountain.Net.Base.Sample{    class Program    {        static void Main(string[] args)        {            Cat cat=new Cat();            // 调用方法            cat.Eat();            Console.ReadLine();        }    }}

5、密封类

sealed关健字修饰符定义的类,密封类特性有不能被继承。如果是密封成员,则派生类中不能对其重写该成员。密封成员属性可提高反射在检索属性时的性能。

using System;using System.Collections.Generic;
namespace Fountain.Net.Base.Sample{    /// <summary>    /// 密封类    /// </summary>    public sealed class Users    {        /// <summary>        /// 用户ID        /// </summary>        public string UserId { get; set; }        /// <summary>        /// 用户名称        /// </summary>        public string UserName { get; set; }        /// <summary>        /// 密封并重写基类中的ShowInfo方法///        /// </summary>        public bool Login()        {            try            {                return true;            }            catch(Exception exception)            {                throw new Exception(exception.Message);            }        }        /// <summary>        /// 获取用户列表        /// </summary>        /// <returns></returns>        public Dictionary<string,string> Getuser()        {            try            {                Dictionary<string, string> userList = new Dictionary<string, string>();
               userList.Add("ID20240001", "A用户");                userList.Add("ID20240002", "B用户");                userList.Add("ID20240003", "C用户");                userList.Add("ID20240004", "D用户");
               return userList;
           }            catch (Exception exception)            {                throw new Exception(exception.Message);            }        }    }}
using System;
namespace Fountain.Net.Base.Sample{    class Program    {        static void Main(string[] args)        {            Users users = new Users();            users.UserId="ID20240001";            users.UserName="A用户";            Console.WriteLine(string.Format("用户:{0}-{1} 登录状态:{2}",users.UserId,users.UserName,users.Login()));                   Dictionary<string, string> userList = users.Getuser();            foreach (string item in userList.Keys)            {                Console.WriteLine(string.Format("在线用户:{0}-{1}", item, userList[item]));            }            Console.ReadLine();        }    }}
// 输出结果用户:ID20240001-A用户 登录状态:True在线用户:ID20240001-A用户在线用户:ID20240002-B用户在线用户:ID20240003-C用户在线用户:ID20240004-D用户

6、静态类

static关健字修饰符定义的类,静态类主要特性有不能实例化仅包含静态成员密封的不能包含实例构造函数

using System;using System.IO;
namespace Fountain.Net.Base.Sample{    /// <summary>    /// 静态类    /// </summary>    public static class Logs    {        // 静态字段 当前程序的执行路径        private static string path=System.AppDomain.CurrentDomain.BaseDirectory;        /// <summary>        /// 写日志内容的静态方法        /// </summary>        /// <param name="content">内容</param>        public static void Writting(string content)        {            try            {                // 根据日期定义文件名称                string filename = string.Format("{0}.log",DateTime.Now.ToString("yyyyMMddHH"));                // 将内写转成字节                byte[] contentArray = System.Text.Encoding.UTF8.GetBytes(content);                // 创建文件流                using (FileStream fileStream = new FileStream(path + Path.DirectorySeparatorChar + filename, FileMode.Append, FileAccess.Write, FileShare.ReadWrite))                {                    fileStream.Seek(0, System.IO.SeekOrigin.End);                    // 写入流                    fileStream.Write(contentArray, 0, contentArray.Length);                }            }            catch(Exception exception)            {                throw new Exception(exception.Message);            }        }    }}
// 应用// 静态类 不用创建实列直接调用Logs.Writting("测试静态类的调用");

小结

以上是C#中面向对象基础的类的全部内容希望对大家理解类一定的参考借鉴价值, 敬请关注后续内容。


该文章在 2024/3/26 18:53:27 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved