如何在c#中隐藏类中的函数

本文关键字:函数 隐藏 | 更新日期: 2023-09-27 18:21:30

我需要根据传递给c#中构造函数的参数在类中隐藏几个方法。我该怎么做?提前感谢!

更多信息:我是GUI开发的一部分,他们有一个API,可以访问硬件中的寄存器。现在他们发布了一个新的硬件,所以我需要支持旧的和新的,它有一个更新的API(大部分是旧的重复,删除了一些旧的,添加了一些新的寄存器)。

此外,我只需要保留一个名为"API"的类,因为我们在很多地方都使用它。因此,使用具有不同名称的较新API的想法被排除在外。

现在,我终于想到了将新的方法包含到旧的方法中,只需有条件地隐藏注册表访问方法。

如何在c#中隐藏类中的函数

您无法切换成员的可见性。。。。。最好的办法是使用不同的接口来隐藏成员。

public interface IName
{
   string Name { get; set; }
}

public interface INumber
{
   string PhoneNumber { get; set; }
}

public class Worker : IName, INumber
{
    public string Name { get; set; }
    public string PhoneNumber { get; set; }
}

因此,通过IName或INumber接口使用Worker,它将隐藏类上的其他成员。。。。

我想您可能在这里看到了一个重因子。试着用所有行为相同的方法/属性(无论参数如何)创建一个基类,然后创建两个行为不同的子类。还可以看看类工厂模式。

您需要将代码重组为多个类或接口。不能基于参数值动态更改类成员的可见性级别。成员是构建时间信息,而不是运行时间。

您不能更改方法的可见性,但您可以将参数传递给单个方法,并使用switch-case根据您的参数执行一些逻辑。但这取决于你的方法结构。
试着复习你的课程并改变它的设计。也许你可以找到任何对你有帮助的设计模式。

使用动态代码生成实际上可能会做一些类似的事情,尽管这更像是一次破解,而不是应该在生产中使用的实际代码。

也许如果你解释为什么你需要这个,那么你可能会得到更相关的答案。