是否有一種方法可以覆蓋抽象類的方法簽名,它使用<T>
和ClassName,所以我可以通過引用傳遞一個對象而不重複它?C# - 覆蓋<T>方法簽名與ClassName?
例如,我有一堆對象管理器。我希望它們都包含一個.Save(Object)方法,該方法將根據對象狀態(插入,更新,刪除等)執行適當的保存操作。
我試圖創建一個基類,它包含以下方法:
protected virtual bool Update<T>(ref T _object) where T : ObjectBase
{
throw new NotImplementedException();
}
public virtual bool Save<T>(ref T _object) where T : ObjectBase
{
// Figure out which action to take based on _object's state and execute it
}
而且我希望我的繼承類的定義方法是使用下面的方法:
public override bool Update<Consumer>(ref Consumer _object)
{
return _service.UpdateConsumer(ref _object);
}
我的問題是,我不能指定<T>
現在是<Consumer>
,並保留在<T>
我不能通過它參考
爲什麼你需要指定'ref'?無論如何,它幾乎肯定是一個參考對象。一個意見的問題,但我會說'ref'是不好的形式。 – Jay 2010-08-02 14:38:08
這不是什麼ref意味着...... ref表示實際參考被傳遞。因此,如果他將_object的值更改爲不同的對象,它將反映在_object的調用者引用中。但在這種情況下,我看不出有什麼理由讓他這樣做。 – 2010-08-02 14:40:59
我通過引用傳遞,因爲_service是一個WCF服務,它根據數據庫輸入/輸出更改對象屬性。 – Rachel 2010-08-02 14:44:12