C#中私有构造函数的特点和用途实例解析

 更新时间:2014年08月13日 10:10:20   投稿:shichen2014  
这篇文章主要介绍了C#中私有构造函数的特点和用途,需要的朋友可以参考下

本文以实例形式分析私有构造函数的特点,以及在何种情况下使用私有构造函数。相信对于大家更好的理解C#中的私有构造函数有一定的促进作用。具体如下:

一、带私有构造函数的类不能被继承

在Animal类中声明一个私有构造函数,让Dog类来继承Animal类。

  public class Animal
  {
    private Animal()
    {
      Console.WriteLine("i am animal");
    }
  }
  public class Dog : Animal
  {
    
  }

运行程序,生成解决方案,报错如下图所示:

二、带私有构造函数的类不能被实例化

运行如下测试代码:

  class Program
  {
    static void Main(string[] args)
    {
      Animal animal = new Animal();
    }
  }
  public class Animal
  {
    private Animal()
    {
      Console.WriteLine("i am animal");
    }
  }

程序运行后生成解决方案,报错如下图所示:

三、私有构造函数的应用

有些时候,我们不希望一个类被过多地被实例化,比如有关全局的类、路由类等。这时候,我们可以为类设置构造函数并提供静态方法。

  class Program
  {
    static void Main(string[] args)
    {
      string str = Animal.GetMsg();
      Console.WriteLine(str);
      Console.ReadKey();
    }
  }
  public class Animal
  {
    private Animal()
    {
      Console.WriteLine("i am animal");
    }
    public static string GetMsg()
    {
      return "Hello World";
    }
  }

总结:一旦一个类被设置成私有构造函数,就不能被继承,不能被实例化,这种情况下,通常为类提供静态方法以供调用。

相关文章

  • C#实现JSON和对象之间互相转换功能示例

    C#实现JSON和对象之间互相转换功能示例

    这篇文章主要介绍了C#实现JSON和对象之间互相转换功能,结合实例形式较为详细的分析了C#实现对象与json之间相互转换的操作技巧,需要的朋友可以参考下
    2017-09-09
  • NumberToUpper数字转中文详解

    NumberToUpper数字转中文详解

    本文介绍NumberToUpper数字转中文的方法,大家参考使用吧
    2013-12-12
  • 解析美国东部时间与北京时间相互转换的实现代码

    解析美国东部时间与北京时间相互转换的实现代码

    本篇文章是对美国东部时间与北京时间相互转换的实现代码进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 用 FieldMask 提高 C# gRpc 的服务性能

    用 FieldMask 提高 C# gRpc 的服务性能

    这篇文章主要介绍了用 FieldMask 提高 C# gRpc 的服务性能,FieldMask 是一个 protobuf 消息,包含一个名为 paths 的字段,用于指定用于指定读取操作返回或更新操作修改的字,下文详细内容,需要的朋友可以参考一下
    2022-03-03
  • c#调整图片分辨率的实现示例

    c#调整图片分辨率的实现示例

    本文主要介绍了c#调整图片分辨率的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • C#判断语句的表达式树实现

    C#判断语句的表达式树实现

    这篇文章介绍了C#判断语句的表达式树实现,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • C#异步编程async/await用法详解

    C#异步编程async/await用法详解

    本文详细讲解了C#异步编程async/await的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • C#使用NPOI实现Excel读取数据以及保存数据

    C#使用NPOI实现Excel读取数据以及保存数据

    这篇文章主要为大家详细介绍了C#如何使用core版本的NPOI实现Excel读取数据以及保存数据功能,文中的示例代码讲解详细,感兴趣的可以了解一下
    2025-03-03
  • Unity 读取文件 TextAsset读取配置文件方式

    Unity 读取文件 TextAsset读取配置文件方式

    这篇文章主要介绍了Unity 读取文件 TextAsset读取配置文件的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C# 中AutoMapper的使用方法

    C# 中AutoMapper的使用方法

    这篇文章主要介绍了C# 中AutoMapper的使用方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12

最新评论