是否有可能有选择地选择(使用装饰器可能?)根据调用的构造函数将对象暴露给哪些方法?有选择地暴露基于构造函数的方法吗?
例如我的类有2个构造函数,一个是空的,另一个传入文件路径字符串。
public class MyClass
{
private readonly string _filePath;
public MyClass()
{
}
public MyClass(string filePath)
{
_filePath = filePath
}
public Export()
{
var fi = new FileInfo(_filePath);
}
}
是否有可能,当我创建一个新的MyClass的对象,只有当我使用构造函数参数暴露导出方法?
var myClass = new MyClass();
//myClass.Export() not available
var myClass = new MyClass(@"C:\");
//myClass.Export() is available
你仍然有知道哪些键入要使用的问题做。换句话说,这是一个编译时问题。 –
@RobertHarvey在上下文中显示他不需要将变量声明为父类型;它可以是更多的派生类型,所以我没有看到问题。 – Servy
正如我所看到的那样,问题是如果你已经知道对象的类型,那么所有这些都是没有意义的,如果你不知道类型,那么你不能说它是任何特定的派生类型。 –