假设我有一个用于对象的字符串数组:
string[] files = Directory.GetFiles(path);
object obj = files;
如何将files
再次打包成字符串数组?
答案 0 :(得分:4)
as运算符就像一个转换器,除了它在转换失败时产生null而不是引发异常。 As operator
string[] someVarArray = obj as string[]
if(someVarArray!=null)
{
//do something
}
答案 1 :(得分:4)
您需要的是强制转换,而不是装箱和拆箱。
string[] files2 = (string[])obj;
但请注意,如果您确定对象包含字符串数组(string []),或者您得到 InvalidCastException ,请执行此操作。 如果您不确定,可以使用两种方法测试对象:
string[] files2;
if( o is string[] )
{
files2 = (string[])o;
// do whatever with files2
}
或
string[] files2 = o as string[];
if( files2 != null )
{
// do whatever with files2
}
答案 2 :(得分:2)
你可以使用as运算符..
if ( obj is string[])
string[] files = obj as string[];
你可以“投”回来......
if ( obj is string[])
string[] files = (string[])obj;