Class a <T> {
public T j;
}
class b:a <int> {
}
で親に子をキャスト:これはジェネリックでなかったならば、あなたは、次の操作を行うことができジェネリック
a foo = new b();
一般的な場合と同じことを行うにはとにかくはありますか?
もっと良い方法がありますか?
を使用できClass a <T> {
public T j;
}
class b:a <int> {
}
で親に子をキャスト:これはジェネリックでなかったならば、あなたは、次の操作を行うことができジェネリック
a foo = new b();
一般的な場合と同じことを行うにはとにかくはありますか?
もっと良い方法がありますか?
を使用できあなたはa
で宣言された一般的なパラメータを必要とする:
class a<T>
{
public T j;
}
あなたはまた、a
から導き出すことができるようにb
でそれらを必要とする:
class b<T> : a<T> { }
してからキャストすることができますb<T>
a<T>
に:
a<int> foo = new b<int>();
それとも、特定のa
から派生することができます。その後、
class b : a<int> { }
とキャスト:
a<int> foo = new b();
これはそうではありません.OPのBは 'a
@ChrisShain:誰かの編集後に、オリジナルをチェックしてください。 – Dani
謝罪 - あなたの答えを編集して、私はupvoteします。 –
:
a<int> foo = new b();
public static void Main()
{
Base<int> foo = new Derived();
}
class Base<T>
{
public T data;
}
class Derived:Base<int>
{
}
@DavidePirasを:あなたはあなたが変更していないされています質問の意味?それは少し曖昧で、あなたはそれの1つの解釈を選んだ。 – Dani
は元に戻りました;-)色以外の違いはありませんでした。 –
@Dani、ソースのコードはまったくあいまいではなく、マークダウンのためのフォーマットが不十分でした。最初のリビジョンの* [source](http://stackoverflow.com/revisions/4a516b43-751c-40d6-be0d-36910e6f82a8/view-source)*を確認して自分自身を確認することができます。元の意図に従うようにテキストが再フォーマットされました。 –