이벤트의 소비자에게 EventArgs
을 통해 버퍼를 수정할 수있는 권한을 부여하려고하지만 솔루션을 제대로 고정 할 수 없습니다. 나는 C/C++로 잘 준비되어 있지만 C#에서는 익숙하지 않다.EventArgs의 수정 된 byte [] 버퍼 반환
내 이벤트 정의는 다음과 같습니다
public class ResponseEventArgs : EventArgs
{
public byte[] Buffer { get; set; }
public ResponseEventArgs(byte[] buffer)
{
this.Buffer = buffer;
}
}
public delegate void ResponseEventHandler(object sender, ResponseEventArgs e);
public event ResponseEventHandler Response;
내가 함께 이벤트를 발생 :
byte[] buffer = new byte[BUFSIZE];
Response(this, new ResponseEventArgs(buffer));
내가 UTF8로 변환 샘플 이벤트 핸들러, 교체하고 다시 바이트, 예에 :
void Response_Test(object sender, ResponseEventArgs e)
{
string stringBuf = System.Text.Encoding.UTF8.GetString(e.Buffer);
stringBuf = stringBuf.Replace("A", "B");
e.Buffer = new byte[stringBuf.Length * sizeof(char)];
System.Buffer.BlockCopy(stringBuf.ToCharArray(), 0, e.Buffer, 0,
e.Buffer.Length);
}
이벤트에서 복귀 할 때, 바이트 버퍼는 여전히 이전 내용을 유지합니다.
[매개 변수가 C#으로 전달 (http://yoda.arachsys.com/csharp/parameters.html) 그거야, 내가 조금 해요 – Steve