2016-04-28 108 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); 
}