2014-01-10 40 views
0

我正在尋找一種方式來做類似於IDisposable接口的接口:當你實現它時,代碼會出現,並且已經寫下了部分方法。我如何複製IDisposable接口「自動」代碼

#Region "IDisposable Support" 
    Private disposedValue As Boolean ' To detect redundant calls 

    ' IDisposable 
    Protected Overridable Sub Dispose(disposing As Boolean) 
     If Not Me.disposedValue Then 
      If disposing Then 
       ' TODO: dispose managed state (managed objects). 
      End If 

      ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. 
      ' TODO: set large fields to null. 

    ... etc 

情況:我有一個龐大的程序,有很多小班。其中一些類有數據,我使用二進制序列化程序來存儲數據。我爲此創建了一個接口ISave。它可以工作,但我必須重新定義Save()方法和每個類中的屬性。其中每個類都有非常非常非常相似的代碼,只有很小的差異(1個代表,1個或1個擴展名)

我使用了很多不同的接口,可以從中受益... if我在界面的某個地方做了一點改動,最後我得到了90多個錯誤,我必須手動安排......它變得非常緩慢。

有沒有辦法寫下我的界面並留下像Idisposable接口一樣的空白點?

編輯:

我不想複製Idisposable的東西。我只想找出如何使出現預先定義的代碼...

我寫下:

Public Class XYZ 
Implements ISave() 

,當我點擊進入,我在想該地區會出現在我的課底部,以及我的Save()方法將被全部寫入,除了1個小細節外,我可以留空來更改,但函數會在其他地方寫下來......像這樣的僞代碼:

#Region "ISave Interface automatic code" 

Public sub Save() 
    'fill out the blank yourself' 
    If not Io.File.Exist(BLANKSPACE ) then 
    ... code to create the file and save it 
    end if 
End sub 
#end Region 

所以我不必去我的90班的每一個手動寫下自己...

+0

是的,這是比較特殊的是*大錯特錯*代碼的99.99%的時間。如果你有一個終結器,你應該只執行一次性模式。如果你認爲你需要一個終結者,那麼99.99%的時間你錯了。只需刪除垃圾直到只剩下Dispose()方法。一個說「不要更改此代碼」的人。更改它:)調用任何一次性成員的Dispose方法。 –

+0

@Hans Passant,不,那不是我想要/意味着...我更新我的問題 –

回答

1

你在找什麼叫做Code Snippets。確切的步驟在這裏解釋太長,但MSDN有good step by step documentation關於如何創建它們。

如果您不想手動創建它們,可以使用第三方工具,如Snippet Editor來幫助更容易地創建代碼片段。

enter image description here

+0

非常感謝,我現在在工作,但我會去檢查一次,我回家了。 –

+0

我很難理解如何使用片段編輯器,而不是讓自己跟隨教程。但它現在起作用了! –