c#新人,請幫忙指出如何解決,謝謝。環境:vs2019,.net 4.7.2
代碼如下:
private ITeraPacketElement FindStruc(Message message, TeraMessageReader reader = null)
{
if (reader == null) { reader = new TeraMessageReader(message); }
ushort offset;
ushort count;
long offset_position;
long count_position;
try
{
offset = reader.ReadUInt16();
offset_position = reader.BaseStream.Position;
count = reader.ReadUInt16();
count_position = reader.BaseStream.Position;
}
// If an error happens, we have reached the end of the stream, not structure can be found.
catch { throw new Exception("Should not happens"); }
if (CheckString(message, offset_position))
{
Debug.WriteLine("String found: offset = " + offset_position);
// is string, check next thing
FindStruc(message, reader);
return; //錯誤處
}
if (CheckArray(message, offset_position, count_position))
{
Debug.WriteLine("String found: offset = " + count_position);
// is array, check next thing
FindStruc(message, reader);
return;//錯誤處
}
// Nothing have been found, stop.
return; //錯誤處
}
uj5u.com熱心網友回復:
看起來象是已有專案,建議你先和同事商討。或者,作為新人先把該專案放一放,做些其他比較容易入門的任務。
uj5u.com熱心網友回復:
回傳 ITeraPacketElement型別的物件, return; 肯定會報錯,ITeraPacketElement element=new ITeraPacketElement();
return element; 這樣就不會報錯了,但是用這個型別ITeraPacketElement 的方法,你要體現出他的作用是什么
uj5u.com熱心網友回復:
首先看你的函式定義private ITeraPacketElement FindStruc(Message message, TeraMessageReader reader = null),需要回傳一個ITeraPacketElement型別的物件,但是在你三處錯誤處都是直接return,并沒有回傳物件,也就自然會報錯uj5u.com熱心網友回復:
第一行第二個單詞指示了此方法(函式)回傳值應為一個實作了ITeraPacketElement介面的實體物件,而錯誤處均為直接回傳,為空.所以出例外了.轉載請註明出處,本文鏈接:https://www.uj5u.com/net/16211.html
標籤:C#
