Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将此代码从VB转换为C#_C#_Vb.net - Fatal编程技术网

将此代码从VB转换为C#

将此代码从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

当我从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 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你明白了;)(过了一会儿我明白了你的意思……)