'System.Windows.Forms.FolderBrowserDialog' является типом, а не пространством имен - PullRequest
1 голос
/ 17 ноября 2011

Возможно, мне не хватает чего-то очень очевидного, но сейчас я не вижу сейчас. У меня есть ссылка на 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 : директива об использовании пространства имен может применяться только к Пространства имен; 'System.Windows.Forms.FolderBrowserDialog' является типом, а не Пространство имен

Ответы [ 6 ]

8 голосов
/ 17 ноября 2011

Вы не можете сделать

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;

и затем сможете использовать его.

2 голосов
/ 18 ноября 2011

Кажется, что System.Windows.Forms.FolderBrowserDialog - это не пространство имен, а класс, который является частью пространства имен System.Windows.Forms .

* .Forms.FolderBrowserDialog - это класс, расположенный в этом пространстве имен. Вот пример того, как его следует использовать . (пример внизу страницы)

2 голосов
/ 17 ноября 2011

Директива using импортирует пространства имен, а не типы.

После импорта System.Windows.Forms вы можете использовать все типы внутри него, включая FolderBrowserDialog.

0 голосов
/ 17 ноября 2011

Сейчас вы пытаетесь импортировать FolderBrowserDialog, но на самом деле это объект.Чтобы использовать его, вы удаляете:

using System.Windows.Forms.FolderBrowserDialog;

И вместо этого ссылка создается путем создания объекта, подобного этому ...

FolderBrowserDialog x = new FolderBrowserDialog();
0 голосов
/ 17 ноября 2011

System.Windows.Forms.FolderBrowserDialog является классом, не является пространством имен для его использования, очистите эту строку.

0 голосов
/ 17 ноября 2011

Это потому, что это тип, а не пространство имен.Вы не ссылаетесь на типы в операторах using, а только на пространства имен.Это не Java.

...