当我尝试编译我的程序时,会出现这些错误:
无法声明静态类型的变量' System.IO.Path'
无法隐式转换类型'字符串'到' System.IO.Path'
我有这些名称的组件
timer = timer1
openfolderbrowserdialog = inDirectoryDialog
openFileBrowserDialog = inFileDialog
checkbox1 = tempCompileCB
checkbox2 = finalCompileCB
textBox1 = inputDirectoryBox
textBox2 = inputFileBox
我不知道为什么它会给我这个错误而且只是程序的一部分,它会给出错误。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace papyrusQuickCompile
{
public partial class Form1 : Form
{
public string inDirectory;
public string inFileName;
public string inFileNameNoExtention;
public Path compilerFolder;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Interval = 1 * 1000;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
compilerFolder = Path.Combine((AppDomain.CurrentDomain.BaseDirectory + ("compiler")));
inDirectory = inDirectoryDialog.SelectedPath;
inFileName = inFileDialog.SafeFileName;
inFileNameNoExtention = Path.GetFileNameWithoutExtension(inFileDialog.SafeFileName);
inputDirectoryBox.Text = inDirectory.ToString();
inputFileBox.Text = inFileName.ToString();
//temp compile checkbox
if (tempCompileCB.Checked)
{
finalCompileCB.Checked = false;
finalCompileCB.Enabled = false;
finalCompileCB.Hide();
}
else if (!tempCompileCB.Checked)
{
finalCompileCB.Show();
finalCompileCB.Enabled = true;
}
//final Compile Checkbox
if (finalCompileCB.Checked)
{
tempCompileCB.Checked = false;
tempCompileCB.Enabled = false;
tempCompileCB.Hide();
}
else if (!finalCompileCB.Checked)
{
tempCompileCB.Show();
tempCompileCB.Enabled = true;
}
}
}
}
答案 0 :(得分:3)
Path是一个静态类。你不能拥有它的实例(你的compilerFolder
变量)。而是存储表示文件路径的字符串。
此外,Path.Combine
会返回一个字符串,因此这将修复您因尝试将字符串分配给Path
变量而导致的第二个错误。
答案 1 :(得分:0)
Path.Combine
会返回string
,而不是Path
对象(Path
是一个静态类,因此无论如何都无法拥有它的实例)
变化
public Path compilerFolder;
到
public string compilerFolder;
其他辅助建议: