我可能会遗漏一些非常明显但现在我现在看不到的东西。我有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'是一个类型而不是 命名空间
答案 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();