VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1015|回复: 6

c# 一个关于类的简单问题

[复制链接]

2

主题

5

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-12 19:30:02 | 显示全部楼层 |阅读模式
class c
{
    private c()
    {
    }
}

里面这个private c有是什么,有什么作用?
回复

使用道具 举报

0

主题

64

帖子

45.00

积分

新手上路

Rank: 1

积分
45.00
发表于 2020-6-7 01:30:01 | 显示全部楼层
类的构造函数,可以在实例类的时候初始数据
回复

使用道具 举报

0

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-6-7 13:00:01 | 显示全部楼层
怎么可以private?不能被访问怎么构造?
回复

使用道具 举报

0

主题

52

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-6-7 20:00:02 | 显示全部楼层
当一个类的成员不需要或者不宜被实例化的时候,定义私有的构造函数就可以防止被错误地实例化
回复

使用道具 举报

0

主题

52

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-6-8 09:00:01 | 显示全部楼层
私有构造函数是一种特殊的实例构造函数。它通常用在只包含静态成员的类中。如果类具有一个或多个私有构造函数而没有公共构造函数,则不允许其他类(除了嵌套类)创建该类的实例。例如:

class NLog

{

    // Private Constructor:

    private NLog() { }    public static double e = System.Math.E;  //2.71828...

}

声明空构造函数可阻止自动生成默认构造函数。注意,如果您不对构造函数使用访问修饰符,则在默认情况下它仍为私有构造函数。但是,通常显式地使用 private 修饰符来清楚地表明该类不能被实例化。

当没有实例字段或实例方法(如 Math 类)时或者当调用方法以获得类的实例时,私有构造函数可用于阻止创建类的实例。如果类中的所有方法都是静态的,可考虑使整个类成为静态的。有关更多信息,请参见静态类和静态类成员。

示例

下面是使用私有构造函数的类的示例。

public class Counter

{

    private Counter() { }

    public static int currentCount;

    public static int IncrementCount()

    {

        return ++currentCount;

    }

}

class TestCounter

{

    static void Main()

    {

        // If you uncomment the following statement, it will generate

        // an error because the constructor is inaccessible:

        // Counter aCounter = new Counter();   // Error        Counter.currentCount = 100;

        Counter.IncrementCount();

        System.Console.WriteLine("New count: {0}", Counter.currentCount);

    }

}

输出

New count: 101

注意,如果您取消注释该示例中的以下语句,它将生成一个错误,因为该构造函数受其保护级别的限制而不可访问:

// Counter aCounter = new Counter();   // Error
回复

使用道具 举报

0

主题

27

帖子

21.00

积分

新手上路

Rank: 1

积分
21.00
发表于 2020-6-8 13:00:02 | 显示全部楼层
简单的说就是不想让使用者初始化这个类。
回复

使用道具 举报

2

主题

5

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-6-8 23:15:01 | 显示全部楼层
感谢各位,特别感谢psycholmu。
此问题与基本明白!^-^

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表