Використання ключового слова "Використання" в інтерфейсі C #


16

Коли я використовую C # для написання якогось коду, і я визначаю інтерфейс за допомогою Visual Studio 2010, він завжди включає ряд операторів "з використанням" (як показано в прикладі)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestEngine.TestNameSpace
{
    interface ITest1
    {
        bool testMethod(int xyz);
    }
} 

Цікаво, для чого вони потрібні і чи справді вони потрібні. Чи можу я їх залишити? Чи потрібні вони лише тоді, коли я використовую ці частини в описі інтерфейсу?


thnx для редагування. Я просто це зрозумів сам. якимось чином використовувані висловлювання були залишені, хоча я вибрав їх у
кодовому

2
Читайте також stackoverflow.com/a/151560/240613 : у вашому коді вставки не в тому місці.
Арсеній Муренко

1
Thnx для посилання, це чудове доповнення. Після відповіді @Akshat Jiwan Sharma стало зрозуміло, що це дійсно так, але в той же час питання стосується шаблону / параметрів за замовчуванням, передбачених MS під час встановлення VS2010.
Онно

1
@MainMa - саме тут Visual Studio ставить usingsшаблони за замовчуванням, тому, якщо Microsoft не оновлює ці колись, це питання буде дійсним.
ChrisF

1
@Midhat: Це правда, але я думаю, що очевидно, що йому задають, коли читаєш сам питання. Не соромтесь редагувати заголовок, якщо ви можете придумати кращий.
Онно

Відповіді:


49

Visual Studio не знає, який код ви збираєтесь написати, тому включає в себе найбільш поширені простори імен за шаблоном "нового класу". Це робиться так, що вам не доведеться вирішувати всі посилання на кожен окремий рядок нового коду, який ви пишете.

Після того, як ви написали свій основний код, якщо ви клацніть правою кнопкою миші та виберіть " Організувати вставки"> "Видалити та сортувати", ви видалите всі непотрібні.


2
Крім того , якщо ви зніміть «використовуючи» лінію помилково, ви можете додати їх назад, перейшовши до імені класу , який тепер не може бути знайдений і клацніть правою кнопкою миші -> Resolve -> Використання ...
Г - н Lister

10
@MrLister: Якщо ви цього ще не знали: натисніть "ctrl +". (контрольний період), коли ваш курсор знаходиться у будь-якому невирішеному типі чи класі, і ви отримуєте той самий ефект, не потребуючи торкання миші.
Стівен Еверс

3
Також просто як доповнення до відповіді: невикористані "вставки" не впливатимуть на час виконання вашого коду, оскільки завантажуватимуться лише використані "вставки". Однак вони можуть впливати на IDE та швидкість компіляції: stackoverflow.com/questions/136278/…
Holger

Оскільки це прийнята відповідь, я хотів би зазначити, що StyleCop поскаржиться на те, що посилання знаходяться в неправильному місці, а також ви можете редагувати шаблон для нового класу та нового інтерфейсу тощо
Job

5

Так, ви можете видалити будь-яку використовуючу директиву, яка не використовується. Ці директиви автоматично додаються візуальною студією, оскільки вони є найбільш часто використовуваними, і якщо, наприклад, ви не збираєтеся використовувати linq в інтерфейсі, ви можете видалити директиву

 System.Linq;

Те ж саме стосується і інших директив. Також, на мою думку, є гарною практикою переміщення використання директив всередині просторів імен.


Радий допомогти питанню, яке ви задали, також спантеличив мене давно. :)
Акшат Джіван Шарма

Можна відредагувати файл шаблонів і налаштувати, який за допомогою оператора включити, і куди - вони повинні зайти за межі простору імен за замовчуванням, інакше StyleCop поскаржиться, і ще гірше - можуть трапитися погані речі.
Робота

3

Ці usingтвердження за замовчуванням є частиною шаблону за замовчуванням під час створення інтерфейсів. Ви завжди можете редагувати шаблон, щоб видалити їх. Дивіться це питання для більш детальної інформації.


Але чи справді вони потрібні? Чи є вагома причина, щоб вони були в шаблоні?
Onno

Якщо вони вам не потрібні, просто вийміть їх. Вони є лише за замовчуванням.
Бернард

Вони необхідні лише в тому випадку, якщо один із ваших методів інтерфейсу є типом повернення, розташованим в одному з них. Система вам потрібна як мінімум, а інші лише за потребою для типів, які ви хочете повернути.
Грехем

Насправді багато класів не потребують системи. Але в цілому це полегшує життя більшості розробників, особливо тим, хто не жахливо звик до .NET і не знає, де взяти основні класи системи.
Wyatt Barnett

0

Коротше кажучи , їх називають просторами імен . Простори імен також використовуються для посилання на деякі класи бібліотек у вашому коді. Також є рекомендовані вказівки щодо використання просторів імен у .NET

У більшості випадків їх можна просто видалити, якщо вони не використовуються. Наступні два простори імен є потенційними кандидатами, які потрібно видалити.

using System.Collections.Generic;
using System.Linq;

Visual Studio буде скаржитися та НЕ складати код, після того, як деякі рамки / бібліотечні класи будуть використані, не оголошуючи своїх просторів імен. Таким чином, відтворення простору імен структурує ваш код, а також полегшує посилання між класами проекту, інтерфейсами, конструкціями тощо.


-1

використання в C # використовується для багатьох способів .. як ключове слово з використанням засобів, що використовують .. при запуску, коли ми використовували систему; це означає, що існує система DLL імен, в якій зберігаються всі основні функції, і ми використовуємо її для скорочення нашого коду ...

system.WriteLine("Andy");

але коли ми використовуємо систему вище, ми можемо записати її як

WriteLine("Andy");

більше, ніж у SQLserver, коли ми використовуємо з'єднання, це означає, що після використання даних із бази даних за допомогою командного з'єднання буде закрито. це дуже корисно для кодера, який хоче заощадити свій час


1
Будь ласка, не намагайтеся додавати у відповіді непотрібні (і потенційно спаммі) посилання.
ChrisF
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.