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.
配列型はどこにありますか?