是否有可能有選擇地選擇(使用裝飾器可能?)根據調用的構造函數將對象暴露給哪些方法?有選擇地暴露基於構造函數的方法嗎?
例如我的類有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
正如我所看到的那樣,問題是如果你已經知道對象的類型,那麼所有這些都是沒有意義的,如果你不知道類型,那麼你不能說它是任何特定的派生類型。 –