3

我正在从 SQL Server 实现文件上传/下载。代码一切正常。

我遇到了这段代码 - 有人可以解释一下这条线在做什么吗?

string[] strPath = strFile.Split(Convert.ToChar(@"\"));

我知道它正在拆分一个字符串 ( strFile) ...我认为分隔符是 ' \'。但是为什么要string[] strPath声明一个字符串数组呢?为什么(Convert.ToChar())使用?

亲切的问候。

4

4 回答 4

12

Convert.ToChar(@"\")也可以'\\'。第一个斜线是为了逃避第二个。@'\'不适用于字符。并'\'转义第二个引号,而不是关闭 char 定义。Convert.ToChar(@"\")是写什么是必要的冗长方式。声明了一个数组,string[]因为如果你用分隔符分割一个字符串,如果找到了分隔符,它可以返回多个字符串。每个拆分的部分是一个单独的字符串。

于 2013-08-07T06:41:19.300 回答
2

@Rehan Mehdi 在这里声明字符串数组,因为当您拆分字符串时,这意味着您制作该字符串的一部分,以存储字符串的不同 2 部分,您需要字符串数组提供的不同 2 空间。并且 Convert.ToChar() 表示你尝试将参数转换为字符。

于 2013-08-07T06:59:36.617 回答
0
  1. 因为 strFile.Split() 的结果是一个不止一次的字符串数组。之所以(Convert.ToChar())使用,是因为没有重载(仅)接受字符串,但有用于 char 的参数数组。查看 ssilas777 的答案中的 MSDN 链接。
于 2013-08-07T06:45:26.240 回答
-1

检查MSDN的 String.Split

Split方法返回一个包含子字符串的字符串数组,因此string声明了数组并且Split方法期望params char[]作为参数(分隔符),因此Convert.ToChar(@"\") 使用。

在这种情况下,'\' 作为分隔符也应该有效。

于 2013-08-07T06:42:40.313 回答