2016-04-28 64 views
0

我使用.NET 1.1構建的程序反編譯,我需要在.NET 2.0或更高版本中重寫。我很難理解這個代碼,事件不是我的強項。 Visual Studio中抱怨將事件從.net 1.1轉換爲.net 2.0或更高版本

「事件 'dataTransfering' 只能出現在的右手邊+ =或 - =」

public delegate void DataTransferringDelegate(string name, long transBytes, long totalBytes); 

public event DataTransferringDelegate dataTransferring 
    { 
     [MethodImpl(32)] 
     add 
     { 
      this.dataTransferring = (FtpIO.DataTransferringDelegate)Delegate.Combine(this.dataTransferring, value); 
     } 
     [MethodImpl(32)] 
     remove 
     { 
      this.dataTransferring = (FtpIO.DataTransferringDelegate)Delegate.Remove(this.dataTransferring, value); 
     } 
    } 

public void upload(string fileName, bool resume) 
{ 
    long length; 
    long num2 = 0L; 
    // some code removed here 
    this.dataTransferring(fileName, num2, length); 
} 

那麼如何在.NET 2.0解決這個代碼?

回答

1

你看到的是how compiler implements Event。你不需要這些,編譯器會自動創建它們。

修改您的密碼,並刪除這些細節,像這樣:

public delegate void DataTransferringDelegate(string name, long transBytes, long totalBytes); 

public event DataTransferringDelegate dataTransferring; 

public void upload(string fileName, bool resume) 
{ 
    long length; 
    long num2 = 0L; 
    // some code removed here 
    dataTransferring(fileName, num2, length); 
} 
相關問題