2013-11-27 60 views
3

「類型'int'的值不能用作默認參數,因爲沒有標準轉換來鍵入' Reality.Game.Rooms.RoomActorType'「在我的C#.exe中出現錯誤。'int'類型的值不能用作默認參數,因爲沒有類型爲C#的標準轉換。

錯誤的線(S):

public RoomActor GetActorByReferenceId(int ReferenceId, RoomActorType ReferenceType = 1) 
    { 
     lock (this.mActors) 
     { 
      foreach (RoomActor actor in this.mActors.Values) 
      { 
       if ((actor.Type == ReferenceType) && (actor.ReferenceId == ReferenceId)) /* line of error */ 
       { 
        return actor; 
       } 
      } 
     } 
     return null; 
    } 

這裏的現實>遊戲>客房> RoomActorType.cs:

namespace Reality.Game.Rooms 
{ 
using System; 

public enum RoomActorType 
    { 
    AiBot = 2, 
    UserCharacter = 1, 
    } 
} 

謝謝!

+4

在這裏工作很好。你能顯示編譯器顯示爲錯誤的確切行嗎? – gzaxx

+0

我們可以有RoomActor類嗎? – Thomas

回答

5

更改方法簽名:

public RoomActor GetActorByReferenceId(int ReferenceId, RoomActorType ReferenceType = RoomActorType.UserCharacter) 
+0

謝謝!完美的作品,所有我需要離開:) – user3041484

+0

它不會讓我在頭10分鐘,或我會。 – user3041484

1
RoomActorType ReferenceType = 1) 

應該

RoomActorType ReferenceType = RoomActorType.UserCharacter) 

,或者如果你真的想使用int做:

RoomActorType ReferenceType = (RoomActorType)1) 

不能使用int作爲枚舉沒有鑄造

+0

感謝!完美的作品,我需要的只剩下:) – user3041484

相關問題