如果我在調用過程中嘗試傳遞一個空參數給委託,我得到一個空例外。下面的代碼看起來像什麼:如何使用null參數調用委託?
public void RequestPhoto() { WCF.Service.BeginGetUserPhoto(Contact.UserID, new AsyncCallback(RequestPhotoCB), null); } public void RequestPhotoCB(IAsyncResult result) { var photo = WCF.Service.EndGetUserPhoto(result); UpdatePhoto(photo); } public delegate void UpdatePhotoDelegate(Binary photo); public void UpdatePhoto(Binary photo) { if (InvokeRequired) { var d = new UpdatePhotoDelegate(UpdatePhoto); Invoke(d, new object[] { photo }); } else { var ms = new MemoryStream(photo.ToArray()); var bmp = new Bitmap(ms); pbPhoto.BackgroundImage = bmp; } }
問題與行:
Invoke(d, new object[] { photo });
如果變量「照片」爲空。在調用過程中傳遞null參數的正確方法是什麼? 謝謝!
也許只有當您的照片不爲空時纔會調用UpdatePhoto方法?我不明白爲什麼你需要在它爲空時調用它... – 2010-06-01 21:23:56
@Tony,謝謝你的回覆。是的,那會起作用。但我仍然想知道做到這一點的最佳方式。我現在只是開始在整個程序中使用異步調用,所以在其他需要傳遞null的場景中會再次出現這種情況。現在讓我們來看看,如果你有任何想法。 – 2010-06-01 21:27:59
fyi。我嘗試了以下方法,但它也不起作用: var d = new UpdatePhotoDelegate(UpdatePhoto); var parm = new object [1]; parm [0] = photo; 調用(d,parm); – 2010-06-01 21:29:02