次のプログラムは "We have something else"を出力します。どのようにして渡される型のデータ型を適切に決定するのですか?ジェネリックスで型を決定する
答えて
キーワードはis
です。
if(aType is string)
Console.WriteLine("We have a string");
else
Console.WriteLine("We have something else");
この種のロジックを使用する際に注意すべきことの一つはis
が予期しない動作につながる可能性のスーパータイプに対してtrueを返すということです。
if(myObj is object)
Console.WriteLine("This will always print");
else if(myObj is int)
Console.WriteLine("This will never print");
これでうまくいきません –
あなたの例では、 'string'ではなく' Type'を渡しています。なぜなら、これは "動作していません"という理由です。 –
@Vince:つまり、 'aType.GetType()は文字列です.'は間違った構文です。 Wesleyのように 'aType is string 'でなければなりません。 –
(小さい)有限リストからタイプを探している場合は、「is」を使用できます。
typeof(string)
はType
を返します。
したがって、AFunction<Type>(typeof(string))
を呼び出すことをコンパイラが推測します。
GetType
Type
のインスタンスのタイプType
を表すType
を返します。
typeof(Type)
はtypeof(string)
と等しくないので、結果はまったく同じです。
あなたは
AFunction<string>("Hello World");
void AFunction<T>(T value)
{
if (value is string) ...
}
または
AFunction(typeof(string));
void AFunction(Type type)
{
if (type == typeof(string)) ...
}
または
AFunction<string>();
void AFunction<T>()
{
if (typeof(T) == typeof(string)) ...
}
を意味しましたか?
void AFunction<T>(T aType)
{
if ((aType as Type).Name == "String")
{
Console.WriteLine("We have a string");
}
else
{
Console.WriteLine("We have something else");
}
}
いいえ私はタイプのタイプを決定したい –
@Vince:タイプのタイプは 'タイプ'です。 'typeof(string).GetType()== typeof(Type)' – dtb
"タイプのタイプはタイプ" LOL; "です。 –
。 あなただけの、次のようにis
キーワードを使用し、その後AFunctionにオブジェクトの種類を送信すると:
void AFunction(Object aType)
{
if (aType is string) {
Console.WriteLine ("We have a string");
} else {
Console.WriteLine ("We have something else");
}
}
をちなみに、私は、ジェネリック型は使用状況のこの種のためではないと思われます。
私はあなたがこの状況でジェネリック型を使用する必要はありませんだと思う:あなたはAFunctionこのような何か作ることができ、あなたの現在のコールを使用して
- 1. Castle Windsorでジェネリックスを解決する
- 2. Javaジェネリックス型キャスティングが必要ですか?
- 3. C#ジェネリックス:参照型と値
- 4. Javaジェネリックスの型引数
- 5. クラス型パラメータの型を決定する型付き
- 6. ジェネリックスに基づいて抽象クラスを解決する
- 7. 動的型の戻り値型を決定する
- 8. ジェネリック型を入力しますが、Javaジェネリックスで独自の型を指定しない
- 9. 決定型変換は、プログラム
- 10. Swiftクラスの型の決定
- 11. 式の型の決定
- 12. Javaの名詞型決定
- 13. Javaでジェネリックスをキャストする
- 14. FBグラフAPIでIDを持つオブジェクトの型を決定する
- 15. Pythonで関数のパラメータ型を決定する方法は?
- 16. Typescriptのジェネリックスと変数の型を調べる
- 17. javaジェネリックスで特定のメソッドを実装するための型パラメータを強制的に
- 18. 関数型プログラミングにおける関数の型の決定
- 19. コレクションなしでジェネリックスを使用するときの型消去エラー
- 20. 型のサブタイプと型自体を許可するJavaジェネリックス式を記述できますか?
- 21. Web-Harvestは、テーブルの列ヘッダーでデータ型を決定します。
- 22. ジェネリックスを使用したUnity XML設定
- 23. ディメンションフィールドの型の決定方法
- 24. C++実行時の型決定
- 25. PostgreSQLがフィルタリングするデータ型を決定する要因は何ですか?
- 26. Stataの列の型を再決定する方法
- 27. C++実行時に多態性オブジェクトの型を決定する
- 28. numpy配列のデータ型を決定するもの
- 29. 型定義の循環依存関係を解決する
- 30. JVMがプリミティブ変数のデータ型を決定する方法は?
あなたは何を達成しようとしていますか?文字列が印刷されますか? – strager