3

メソッド内で決定した変数を希望のタイプで指定するために、メソッドのパラメーターがどのタイプであるかを確認したいと思います。

public static Object getFileContent(String filename, Type returntype)
{
     if (returntype.GetType().Equals(string))
     {
       // do something
     }
}

これは機能しません。returntypeがまたはであるかどうかを確認するために何ができますstringList<string>

4

5 に答える 5

5
returntype == typeof(string)

GetTypeすでにタイプあるので、呼び出す必要はありません。(GetTypeとにかく有用な答えを返さないでしょう、それはtypeof(Type)を返します)。

于 2013-03-19T15:49:26.837 に答える
0

typeof代わりに演算子を使用してください

 if (returntype.Equals(typeof(string)))
 {
   // do something
 }

あるいは単に

 if (returntype == typeof(string))
 {
   // do something
 }
于 2013-03-19T15:49:14.847 に答える
0
if(returnType == typeof(String) || return == typeof(List<String>))
    //logic
于 2013-03-19T15:49:27.553 に答える
0

returntypeこの場合、それが と同じ型であることを確認したいだけですstring。インスタンスを比較するときTypeの最善の方法は、単純に==演算子を使用することです

return returntype == typeof(string);

ただし、COM インターフェイスを処理する必要がある場合は、IsEquivalentTo代わりにメソッドを使用することをお勧めします。==

return returntype.IsEquivalentTo(typeof(TheInterface));

これが必要なのは、COM に埋め込まれた相互運用型が異なるTypeインスタンスとして表示されるためです。このIsEquivalentToメソッドは、それらが同じ基になる型を表しているかどうかを確認します。

于 2013-03-19T15:53:22.350 に答える
-1

私はむしろisオペレーター自身を好みます:

if (returntype is string)
{
    // do something
}
于 2013-03-19T15:50:33.180 に答える