加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C等价的C#静态类

发布时间:2020-12-16 10:12:26 所属栏目:百科 来源:网络整理
导读:所以在C#中,当我想创建全局可用的函数/变量时,我会创建一个静态类… // SomeClass.cspublic static class SomeClass{ private static int bar; public static int Foo() { return bar; }} 如果我想在C中做同样的事情,这基本上是一回事吗? // SomeClass.hcla
所以在C#中,当我想创建全局可用的函数/变量时,我会创建一个静态类…

// SomeClass.cs
public static class SomeClass
{
    private static int bar;

    public static int Foo()
    {
        return bar;
    }
}

如果我想在C中做同样的事情,这基本上是一回事吗?

// SomeClass.h

class SomeClass
{
private:
    int bar;

public:
    SomeClass();
    ~SomeClass();

    int foo();
};

extern SomeClass gSomeClass;

在……

// SomeClass.cpp
#include "SomeClass.h"

SomeClass gSomeClass;

SomeClass::SomeClass()
{
    bar = 0;

    //....
}

SomeClass::~SomeClass()
{
    //....
}

int SomeClass::foo()
{
    return bar;
}

在……

#include "SomeClass.h"

int main()
{
    return gSomeClass.foo();
    // (basically)
}

这样做会有问题吗?

解决方法

听起来你正试图实施 singleton pattern.关于何时应该使用这种模式由于“全局变量不好”的普遍情绪,存在很多争论,但在我看来它有合法的用例.关键字“singleton”应该足以让您研究模式的各种C实现,并找到许多关于使用它的优缺点的讨论.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读