首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从dmm库中选择一个类,并使用通用名称向上传递

从dmm库中选择一个类,并使用通用名称向上传递
EN

Stack Overflow用户
提问于 2017-12-19 04:55:56
回答 1查看 25关注 0票数 0

我有几个名称空间,表示不同的制造商DMM的Racal_xxxxx Agilent_Xxxxx Fluke_xxxxx。

据我所知,我可以编写一个接口,强制执行以上所有功能。

我可以在Test_Station中用这种方式做我想做的事情:

代码语言:javascript
运行
复制
public Racal_4152A_DMM.main dmm = new Racal_4152A_DMM.main();

我可以在下一节课上使用它,Test_Exec

有没有办法在不公开的情况下向上传递dmm?

而且,我真的需要让它不公开吗。

层次结构是:

Test_Exec (需要使用Racal_4152A_DMM作为数字万用表,但需要在Test_Station中进行分配)

Test_Station

Racal_4152A_DMM

所有这些都是独立的名称空间。

EN

回答 1

Stack Overflow用户

发布于 2017-12-19 05:11:27

名称空间实际上只是一个命名问题。他们不会对访问权限施加限制。因此,如果您想隐藏类,则必须将它们包装在另一个类中并使其成为私有类,或者将它们放置在不同的项目中并使其成为内部类。

我将向您展示如何将它们包装在一个类中。定义接口

代码语言:javascript
运行
复制
public interface IMultimeter
{
    //TODO: declare members
}

public static class MulimeterFactory
{
    private class Racal_4152A : IMultimeter
    {
        //TODO: Implement interface
    }

    private class Agilent_XXX : IMultimeter
    {
        //TODO: Implement interface
    }

    public static IMultimeter Create_Racal_4152A()
    {
        return new Racal_4152A();
    }

    public static IMultimeter Create_Agilent_XXX()
    {
        return new Agilent_XXX();
    }
}

现在您可以创建如下所示的DMM

代码语言:javascript
运行
复制
IMultimeter dmm = MulimeterFactory.Create_Racal_4152A();

MulimeterFactory之外,类Racal_4152A仍然不可见。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47876291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档