将此代码从VB转换为C#
当我从VB转换此代码时:将此代码从VB转换为C#,c#,vb.net,C#,Vb.net,当我从VB转换此代码时: Dim r As DialogResult = FldSource.ShowDialog() If r = Windows.Forms.DialogResult.OK Then lstPath.Items.Clear() lblSoLuong.Text = lstPath.Items.Count txtPath.Text = FldSource.SelectedPath
Dim r As DialogResult = FldSource.ShowDialog()
If r = Windows.Forms.DialogResult.OK Then
lstPath.Items.Clear()
lblSoLuong.Text = lstPath.Items.Count
txtPath.Text = FldSource.SelectedPath
Dim tenfile, FS() As FileInfo
Dim di As New DirectoryInfo(txtPath.Text)
FS = di.GetFiles("*.txt")
For Each tenfile In FS
lstPath.Items.Add(tenfile.FullName)
Next
lblSoLuong.Text = lstPath.Items.Count
End If
到C#:
我在这行中出错:
FS= di.GetFiles(".txt");
我想知道我的错误在哪里 您错过了*
FS = di.GetFiles("*.txt");
你错过了比赛*
FS = di.GetFiles("*.txt");
不应该是这样的:
FS=di.GetFiles(“*.txt”) 是不是应该这样:
FS=di.GetFiles(“*.txt”) 注意您在VB中使用的搜索模式:
FS = di.GetFiles("*.txt")
在C#中:
从VB到C#的变化不会改变方法的调用方式,也不会改变传递给它们的值。您仍然需要以相同的搜索模式发送它。(事实上,即使在VB版本中,GetFiles()
的实现也很可能是用C语言编写的。)
内部工作没有区别,只是调用这些内部工作的语法不同
此外,我不能100%确定您在这里想要做什么:
FileInfo tenfile, FS();
如果FS
应该是一个数组,您可以执行以下操作:
FileInfo tenfile;
FileInfo[] FS;
尽管通过隐式键入可以更轻松地进行声明,甚至不需要声明语句:
var FS = di.GetFiles("*.txt");
请注意您在VB中使用的搜索模式:
FS = di.GetFiles("*.txt")
在C#中:
从VB到C#的变化不会改变方法的调用方式,也不会改变传递给它们的值。您仍然需要以相同的搜索模式发送它。(事实上,即使在VB版本中,GetFiles()
的实现也很可能是用C语言编写的。)
内部工作没有区别,只是调用这些内部工作的语法不同
此外,我不能100%确定您在这里想要做什么:
FileInfo tenfile, FS();
如果FS
应该是一个数组,您可以执行以下操作:
FileInfo tenfile;
FileInfo[] FS;
尽管通过隐式键入可以更轻松地进行声明,甚至不需要声明语句:
var FS = di.GetFiles("*.txt");
我认为您要做的是创建一个
FileInfo
数组。在这种情况下,而不是:
FileInfo tenfile, FS();
你需要这个:
FileInfo tenfile;
FileInfo[] FS;
另外,正如其他人所指出的,您在搜索
GetFiles
的字符串中缺少了*
,但这不会给您带来错误,它不会达到您预期的效果。我想您要做的是创建一个FileInfo
数组。在这种情况下,而不是:
FileInfo tenfile, FS();
你需要这个:
FileInfo tenfile;
FileInfo[] FS;
另外,正如其他人所指出的,您在搜索
GetFiles
的字符串中缺少*
,但这不会给您带来错误,它不会达到您所期望的效果。您不能以这种方式在c中声明变量#
如果您需要一个FileInfo-tenFile和一个FileInfo-FS数组,请使用
FileInfo tenfile;
FileInfo[] FS;
在c中不能以这种方式声明变量# 如果您需要一个FileInfo-tenFile和一个FileInfo-FS数组,请使用
FileInfo tenfile;
FileInfo[] FS;
也许您可以与我们分享您收到的错误?get文件中需要一个*您是否错过了FS=di.GetFiles(“.txt”)中的“*”?在这一行的开头没有*FS=di.GetFiles(“.txt”);这不是给你错误的那一行,是之前的那一行。此部分
FS()
无效。也许您可以与我们分享您收到的错误?get文件中需要一个*您没有错过FS=di.GetFiles(“.txt”)中的“*”吗?在这一行的开头没有*FS=di.GetFiles(“.txt”);这不是给你错误的那一行,是之前的那一行。此部分FS()
无效。请尝试声明int x,y=0代码>代码将在.NET4中编译。0@abhi,是的,但这是FS()
,而不是FS
。这是不一样的。和Directory.GetFiles
返回一个FileInfo[]
,而不是FileInfo
@RaphaëlAlthaus-Gotcha。他正在使用VB语法来声明数组。@abhi你明白了;)(过了一会儿我明白了你的意思…)试着声明intx,y=0代码>代码将在.NET4中编译。0@abhi,是的,但这是FS()
,而不是FS
。这是不一样的。和Directory.GetFiles
返回一个FileInfo[]
,而不是FileInfo
@RaphaëlAlthaus-Gotcha。他正在使用VB语法来声明数组。@abhi你明白了;)(过了一会儿我明白了你的意思……)