2

たとえば、次のような方法があります。

    public VAR GetAllPosts()
    {
        var post = from p in _db.Posts  select p;
        return post;
    }

var-type変数をどのように返しますか?

4

3 に答える 3

9

あなたはそれを持つことができますobject、しかしあなたはそれを適切に使うためにそれをキャストしなければなりません。dynamic別のオプションですが、その価値よりも厄介な場合があります。

あなたが望むかもしれないのは、のタイプがIQueryable<T>どこにあるかということだと思います。TPosts

于 2012-05-17T14:36:24.367 に答える
6

コードに基づいて、投稿の列挙になることがわかっているので、

public IEnumerable<Posts> GetAllPosts()
    {
        var post = from p in _db.Posts  select p;
        return post;
    }

また

public IEnumerable<Posts> GetAllPosts()
    {
        return from p in _db.Posts  select p;
    }

ハードコアになりたい場合は、このようなものを使用できます。これはTのジェネリック型です。目的の型でメソッドを呼び出し、その中で型を検証して、好きなことを行う必要があります。

  public List<T> GetData<T>()
  {
      //Validate the type and do something
      if (typeof(T) == typeof(MyClass))
      {
         List<MyClass> lst = new List<MyClass>();
         lst.Add(new MyClass { ClassProperty = "Value" });

         return lst as List<T>;
     }
     else // do something else
     {
       return null;
     }
   }

このメソッドを呼び出すには、正しいタイプを渡します

List<MyClass> list = GetData<MyClass>();

それが役に立てば幸い。

于 2012-05-17T14:38:59.307 に答える
5

var型ではないため、返却できません。

戻り型について不明な場合は、戻りobject(Danielが提案するように)、複数の型である可能性がある場合は、基本型があればそれを返します。

あなたの具体的なケースでIEnumerable<T>、あなたはオブジェクトを返そうとしているようです_db.Posts

于 2012-05-17T14:38:27.543 に答える