我正在开发一个图形转换程序,设置一个列表框来读取目录中文件的名称。代码基于我的教师的一个例子,所以我认为它会工作正常,但似乎在任何地方都会产生错误。我用谷歌搜索“错误CS1519:无效的令牌','在类,结构或接口成员声明中”,但我发现看起来不适用。这是:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Transformer
{
public partial class Transformer : Form
{
/* Initialize parameters */
private bool drawAxes = true;
private bool drawGrid = true;
private List<ObjectSettings> dispObjects = new List<ObjectSettings>();
/* Initialize form */
public Transformer()
{
InitializeComponent();
}
private void Transformer_Load(object sender, EventArgs e)
{
}
/* Populate available objects listbox */
private int selFile = 0;
private string currentDir = Directory.GetCurrentDirectory();
// errors start around here
private string[] fileEntries = Directory.GetFiles(currentDir+@"\Objects");
foreach (string s in fileEntries) {
int start = s.LastIndexOf(@"\");
int end = s.LastIndexOf(@".");
availObjectsListBox.Items.Add(s.Substring(start + 1, end - start - 1));
} // end foreach
}
}
答案 0 :(得分:1)
那是因为你需要把:
foreach (string s in fileEntries) {
int start = s.LastIndexOf(@"\");
int end = s.LastIndexOf(@".");
availObjectsListBox.Items.Add(s.Substring(start + 1, end - start - 1));
}
在一个函数中。
也许你可以这样做:
private void Transformer_Load(object sender, EventArgs e)
{
int selFile = 0;
string currentDir = Directory.GetCurrentDirectory();
string[] fileEntries = Directory.GetFiles(currentDir+@"\Objects");
foreach (string s in fileEntries) {
int start = s.LastIndexOf(@"\");
int end = s.LastIndexOf(@".");
availObjectsListBox.Items.Add(s.Substring(start + 1, end - start - 1));
} // end foreach
}
请注意,您将foreach
循环放在Transformer_Load
函数中;当然,你可以把它放在任何其他功能。请注意,private
,selFile
和currentDir
变量前面没有修饰符(fileEntries
)。
答案 1 :(得分:0)
查看错误的开始位置!
你不能在课堂上发表言论。它需要位于方法/属性/构造函数中。