MakeArrayType()
配列など、特定の型の配列型を作成する場合は、使用しても問題ありませんchar
。
typeof(char).MakeArrayType()
もちろん、typeof(char[])
代わりに使用する方がより直感的です。
そして、型のプロパティAssembly
は、型がどこにあるアセンブリかを教えてくれます。
したがって、次のコードは、アセンブリ内の型を見つけるための合理的な例です。
var chars=new[] { '\x20' };
var typeofCharArray=chars.GetType();
var assembly=typeofCharArray.Assembly;
var doesContain=assembly.GetTypes().Contains(typeofCharArray);
しかしdoesContain
、そうではないと言います、それはfalse
. これは、配列の型がMakeArrayType()
またはtypeof()
、またはインスタンスの に関係なく発生しますGetType
。
Assembly.GetTypesから読み取った他のアセンブリに転送された疑いがあります。そして私は試しました:
var assemblyContainsTypeOfCharArray=(
from it in AppDomain.CurrentDomain.GetAssemblies()
let types=it.GetTypes()
where types.Contains(typeof(char[]))
select it).FirstOrDefault();
興味深いのassemblyContainsTypeOfCharArray
はnull
.
配列型はどこにありますか?