是否可以將委託作爲參數的參數?是否有可能擁有一個委託作爲屬性參數?
像這樣:
public delegate IPropertySet ConnectionPropertiesDelegate();
public static class TestDelegate
{
public static IPropertySet GetConnection()
{
return new PropertySetClass();
}
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface,AllowMultiple=false,Inherited=true)]
public class WorkspaceAttribute : Attribute
{
public ConnectionPropertiesDelegate ConnectionDelegate { get; set; }
public WorkspaceAttribute(ConnectionPropertiesDelegate connectionDelegate)
{
ConnectionDelegate = connectionDelegate;
}
}
[Workspace(TestDelegate.GetConnection)]
public class Test
{
}
如果它不是可能的,什麼是明智的選擇嗎?
其實這是一個很好的解決方法。我爲此構建了一個speficic接口,但代理非常簡單。謝謝! –
這是一個解決方法,但不是一個好的方法。正如@nemesv所說的 - hacky和容易出錯的方式,因爲如果使用重構菜單將方法GetConnection的名稱更改爲其他名稱,字符串「GetConnection」將不會自動更改。 – prostynick
那麼是否有可能在C#手動限制參數類型的構造函數?我沒有聽到有關它的信息,但正如我們在'Attribute'中看到的那樣,它是可能的。怎麼樣? – monstr