web-dev-qa-db-ja.com

C#での「T」の意味

VB背景があり、新しい仕事のためにC#に変換しています。また、一般的に.NETを改善しようとしています。キーワード "T"が使用されているのを確認しました多くの人が投稿するサンプルC#で「T」とはどういう意味ですか?例:

public class SomeBase<T> where T : SomeBase<T>, new()

Tは何をしますか?なぜ使用したいのですか?

74
Jim

ジェネリック型パラメーター のシンボルです。たとえば、次のようにすることもできます。

public class SomeBase<GenericThingy> where GenericThingy : SomeBase<GenericThingy>, new()

Tのみが、Microsoftによって使用および推奨されているデフォルトのTです。

50
user39603

Tはキーワード自体ではなく、ジェネリック型のプレースホルダーです。 Microsoftの Genericsの紹介 を参照してください

同等のVB.Net構文は次のとおりです。

Public Class SomeBase(Of T As {Class, New}))
45
Rob Walker

T wouldの代わりに使用される別の名前の良い例は、ハッシュテーブルクラスです。

public class Dictionary<K,V> ...

ここで、KはKeyを表し、Vはvalueを表します。 Tはtypeを表していると思います。

これを見たことがあるかもしれません。接続できる場合は、かなり役立つはずです。

15
biozinc

それは「汎用」になります。すでに述べたように、 Microsoftの説明 という概念があります。 「T」の理由については、 この質問 を参照してください。

簡単に言うと、特定の型に特化したクラス/メソッドを作成できます。古典的な例はSystem.Collections.Generic.List<T>クラスです。タイプTのアイテムのみを保存できることを除いて、System.Collections.ArrayListと同じです。これにより、タイプセーフティが提供されます。間違ったタイプのアイテムをリストに(誤ってまたは別の方法で)置くことはできません。 System.Collections.Generic名前空間には、これを利用する他のさまざまなコレクションタイプがいくつか含まれています。

あなたがそれを使用できる場所については-それはあなた次第です。時々登場する多くのユースケースがあります。ほとんどの場合、何らかの組み込みのコレクション(組み込みのコレクションでは不十分な場合)ですが、実際には何でもかまいません。

5
Vilx-

最善の方法は、Web上の多くのリソースである「ジェネリック」に精通することです。ここに one

Tはキーワードではなく名前であり、私が知る限り実際には何でもかまいませんが、Tは慣習です(1つのタイプのみが必要な場合、コーズ)

4
Yossi Dahan

Tは、ジェネリッククラスの型パラメーターの名前です。 「タイプ」の略ですが、「アリス」と呼ぶこともできます。

ジェネリックを使用すると、コードを不必要に複製することなく、タイプセーフな方法で再利用性を高めることができます。したがって、ListOfIntegersListOfStringsListOfCharsListOfPersonsなどのクラスを記述する必要はありませんが、代わりに汎用クラスList<T>その後、タイプList<Int32>List<string>List<char>およびList<Person>。コンパイラーが作業を行います。

2
jason

「任意のクラス」を意味します。 「B」、「A」など何でもかまいません。 Tは「テンプレート」のために使用されると思います

1
Otávio Décio