2017-05-07 4 views
0

nullreferenceexceptionを与えるコードに問題があります。しかし、なぜ私は理解していない。下のコードで私のプログラムは私にnullrefexcを与えます。C#オブジェクト参照がIHttpActionResultのオブジェクトのインスタンスに設定されていません

第2コード部分は、 'var models'が表すべき変数です。私はまた、2番目の部分のコードを使用してみましたが、それはIHttpActionResultコードで変数のお気に入りを使用する場合も同じことを言います。

例外:

  public IHttpActionResult GetAllFavorites() 
      { 
       var models = _favoriteModelFactory.CreateFavoritesFromFavoriteModel(_favoriteRepository.GetAll(), 
        _favoriteRepository); 
       return Ok(models); 
      } 

第二部分:助けるため

 public IEnumerable<Favorite> GetAll() 
    { 
     IEnumerable<Favorite> favorites = new List<Favorite> 
     { 
      new Favorite 
      { 
       StudentId = 1, 
       FavoritesIds = {2,5,8}, 
       FavoriteId = 1 
      } 
     }; 
     return favorites;   
    } 

ありがとう!

答えて

0

"FavouritesIds"がリストであると仮定します。 コードスニペットでインスタンス化されることはありません。したがって、{2,5,8}を割り当てるとnull参照例外が発生します。

これは2通りの方法で解決できます。 GETALLで

  1. 好きなクラスのコンストラクタで

  2. ()メソッド

    public static IEnumerable<Favorite> GetAll() 
         { 
          IEnumerable<Favorite> favorites = new List<Favorite>() 
         { 
          new Favorite 
          { 
           StudentId = 1, 
           FavoritesIds = new List<int> {2,5,8}, 
           FavoriteId = 1 
          } 
         }; 
          return favorites; 
         }  
    

OR

public class Favorite 
    { 
     public Favorite() 
     { 
      FavoritesIds = new List<int>(); 
     } 
     public int StudentId { get; set; } 
     public List<int> FavoritesIds { get; set; } 
     public int FavoriteId { get; set; } 
    } 
+0

まあ私の愚かな間違いだったこと、私がいることを忘れてしまいましたそれはリストだった。私はそれが配列だと思ったが、それはあなたの助けのためにnkを! – BrianM

関連する問題