1

私はしばらくの間働いていたこの方法を持っています

public string getSlotText(int slotID)
{
    DataClasses1DataContext context = new DataClasses1DataContext();

    var slotString = context.spGetSlotTextBySlotID(slotID);

    return slotString.ElementAt(0).slotText;

}

しかし、私が今本当に欲しいのは次のようなものです

public var getSlotText(int slotID)
{
    DataClasses1DataContext context = new DataClasses1DataContext();

    var slotString = context.spGetSlotTextBySlotID(slotID);

    return slotString;
}

slotString には複数の要素が含まれているためです。他の例を見ましたが、LINQ が sproc を呼び出す例はありませんでした。

どんな助けでも素晴らしいでしょう、idはとても感謝しています。

どうもありがとう

ティム

4

1 に答える 1

0

varキーワードを戻り値の型として使用することはできません。初期化を伴うメソッドおよびクラスメンバー内でのみ使用できます。

C# の他のいくつかの事柄に違反する戻り値の型の型推論を行うことは可能かもしれませんが。たとえば、匿名型。varメソッドは C# で匿名型を返すことができないため、戻り値の型としてキーワードを禁止するだけでなく、匿名型を返すことができないという別のチェックが必要になります。

また、戻り値の型として許可するvarと、実装を変更するときにメソッド シグネチャの安定性が低下します。

編集:何を返すと予想されるかはやや不明ですが、標準的な解決策をいくつか示します。

結果からすべてを返したい場合slotText

return context.spGetSlotTextBySlotID(slotID).Select(s=> s.slotText).ToList());

( を返しますList<string>)

SlotTextまたは、すべて(または sproc から返される型)を返したい場合

return context.spGetSlotTextBySlotID(slotID).Select(s=> s.slotText).ToList());

( を返しますList<SlotText>)

于 2010-08-27T14:15:07.940 に答える