C# 在GTK/C中当Widget.Path冲突时使用System.Path#

C# 在GTK/C中当Widget.Path冲突时使用System.Path#,c#,path,cross-platform,monodevelop,C#,Path,Cross Platform,Monodevelop,我正在使用GTK工具包开发一个跨平台应用程序,当我试图访问System.IO命名空间以提取路径字段时,我遇到以下错误: 错误CS0119:“Widget.Path(out-uint,out-string,out-string)”是一个方法,在给定上下文(CS0119)(netmonmd)中无效 我已经使用System.IO在源文件中,我正在使用其他名称空间,没有任何问题(例如System.Console和System.Refelection在代码中没有任何问题) 我在控制台应用程序中有几乎相同的

我正在使用GTK工具包开发一个跨平台应用程序,当我试图访问
System.IO
命名空间以提取
路径
字段时,我遇到以下错误:

错误CS0119:“Widget.Path(out-uint,out-string,out-string)”是一个方法,在给定上下文(CS0119)(netmonmd)中无效

我已经
使用System.IO在源文件中,我正在使用其他名称空间,没有任何问题(例如
System.Console
System.Refelection
在代码中没有任何问题)

我在控制台应用程序中有几乎相同的代码,可以正常工作

下面是代码,如果我完全提供了
路径
它可以工作,我就不能在名称空间中使用它(但我可以使用同一名称空间中的其他东西)

我试图理解这个错误(我是C#新手),并认为它与在
主窗口
函数中调用它有关,因为它似乎是指
小部件.Path
而不是
系统.Path

这是不是每次都必须完全限定它

我可以将所有代码移出主窗口,并在
app.cs
文件中的其他位置进行处理,但这是我在同一个空间中开发的单个窗口应用程序。如果练习把它分开比较好,我会那样做


(通常情况下,在堆栈上提问时,当我写出这个问题时,我越来越清楚这里到底发生了什么,我只是不知道如何解决它)

使用Path=System.Path好的,我在这方面工作了一段时间,我无法使用Path=System.Path使
工作,我想你的意思是
System.IO.Path
,但它仍在尝试使用
Widget.Path
。我甚至使用文件顶部的
s更改了我的
的顺序,但没有效果。有效的方法(我不知道您可以这么做)是重命名名称空间。通过使用path=System.IO.path使其成为小写的
,它神奇地工作了。我觉得我错过了一些东西,但这至少会让我保持现在的状态。
using Gtk;
using System;
using System.IO;

using static System.Console;

public partial class MainWindow : Gtk.Window
{
    private netmonmd.iplabel[] ids;
    private int fSize = 12;

    public MainWindow() : base(Gtk.WindowType.Toplevel)
    {

        Build();
        //char filesep = System.IO.Path.DirectorySeparatorChar;  // works
        char filesep = Path.DirectorySeparatorChar;              // error