質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Generics

Genericsはパラメトリックなポリモーフィズムの形態であり、.NET やJavaなど、様々な言語に実装されています。C++のテンプレートと同等の機能を持ち合わせています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

1880閲覧

C# での型変数の使用について

takagitakashi

総合スコア15

Generics

Genericsはパラメトリックなポリモーフィズムの形態であり、.NET やJavaなど、様々な言語に実装されています。C++のテンプレートと同等の機能を持ち合わせています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2017/02/26 10:25

###前提・実現したいこと

  • 型変数を使用した拡張メソッド定義
  • Stack<T> 型のインスタンスをクローンするメソッド定義

###発生している問題・エラーメッセージ

型または名前空間の名前’T'が見つかりませんでした。 というエラーになる。(下記ソースにおいて)

###該当のソースコード

C#

1 static class StackExtender 2 { 3 static Stack<T> Clone(this Stack<T> obj) 4 { 5 return new Stack<T>(obj.ToList<T>().Reverse<T>()); 6 } 7 } 8

###試したこと
Tの代わりに int を使えば問題無く定義できます。

###補足情報(言語/FW/ツール等のバージョンなど)
Visual Studio 2015 Update 1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これでどうですか?

C#

1static class StackExtender 2{ 3 public static Stack<T> Clone<T>(this Stack<T> obj) 4 { 5 return new Stack<T>(obj.ToList<T>().Reverse<T>()); 6 } 7}

投稿2017/02/26 10:43

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takagitakashi

2017/02/26 10:46

おお! ありがとうございます! Cloneにも型引数を渡す必要がありましたね。。 うっかりしておりました。
Zuishin

2017/02/26 10:48

あと public をお忘れなく。
takagitakashi

2017/02/26 10:53 編集

あ、、ありがとうございます! おかげさまで問題無く実装できましたー
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問