'System.Windows.Forms.FolderBrowserDialog'是一种类型而不是命名空间

时间:2011-11-17 19:55:14

标签: c# namespaces using

我可能会遗漏一些非常明显但现在我现在看不到的东西。我有System.Windows.Forms的引用,我有下一个using类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO;

using System.Windows.Forms;
using System.Windows.Forms.FolderBrowserDialog;

但是编译器总是给我下一个错误:

  

错误CS0138 :using namespace指令只能应用于   命名空间; 'System.Windows.Forms.FolderBrowserDialog'是一个类型而不是   命名空间

6 个答案:

答案 0 :(得分:8)

你做不到

using System.Windows.Forms.FolderBrowserDialog;

因为类型而不是命名空间。它所属的名称空间是System.Windows.Forms。删除此行,如果要实例化FolderBrowserDialog,只需确保您有行

using System.Windows.Forms;

并像这样制作FolderBrowserDialog

var fbd = new FolderBrowserDialog();

所有这些都与Java形成对比,在那里你导入类型而不是使用命名空间,这是你可能出错的地方 - 在Java中你会做类似的事情:

import System.Windows.Forms.FolderBrowserDialog;

然后才能使用它。

答案 1 :(得分:2)

using指令导入名称空间,而不是类型。

导入System.Windows.Forms后,您可以使用其中的所有类型,包括FolderBrowserDialog

答案 2 :(得分:2)

System.Windows.Forms.FolderBrowserDialog似乎不是命名空间,而是属于命名空间System.Windows.Forms的一部分。

* .Forms.FolderBrowserDialog是位于该命名空间内的类。 Here is an example of how it should be used。 (示例位于页面底部)

答案 3 :(得分:0)

那是因为它是一个类型,而不是命名空间。您不会在using语句中引用类型,只引用名称空间。这不是Java。

答案 4 :(得分:0)

System.Windows.Forms.FolderBrowserDialog是一个类,不是使用它的命名空间,清除该行。

答案 5 :(得分:0)

现在你正在尝试导入FolderBrowserDialog但它实际上是一个对象。要使用它,请删除:

using System.Windows.Forms.FolderBrowserDialog;

而引用是通过创建这样的对象...

FolderBrowserDialog x = new FolderBrowserDialog();