---
title: "using System; märkligt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/115461-using-system-märkligt"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "kristoffer"
published: "2004-11-09T09:39:52.000Z"
updated: "2004-11-09T10:57:52.000Z"
replies: 4
views: 329
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/115461-using-system-märkligt"
---

# using System; märkligt

## #1 — kristoffer, 2004-11-09T09:39Z

Jag har kopierat dll-filen MyProject.dll från ett projekt och skapat en referens till denna. Det är inga problem att skriva:

```
string s = MyProject.Foo.Bar.GetMyString();
```

 

Däremot fungerar inte:

```
using MyProject;
string s = Foo.Bar.GetMyString();
```

 

Dock fungerar följande:

```
using MyProject.Foo;
string s = Bar.GetMyString();
```

 

Samma sak är det ju med **using System;**:

Fungerar:

```
string s = System.IO.Path.GetFileNameWithoutExtension("foo.htm");
```

 

Fungerar inte:

```
using System;
string s = IO.Path.GetFileNameWithoutExtension("foo.htm");
```

 

Det märkliga är att vissa klasser går att referera till utan att inkludera System:

```
override protected void OnInit(EventArgs e)
{
	InitializeComponent();
	base.OnInit(e);
}
```

 

Här behövs inte System.EventArgs (som ju är klassen som refereras).

Idéer?

Permalänk: https://www.webforum.nu/p/115461

## #2 — spango, 2004-11-09T10:12Z

När du importerar en namnrymd med using, får du bara in de klasser som finns i namnrymden, inte några undernamnrymder. Du måste importera varje namnrymd för sig.

Permalänk: https://www.webforum.nu/p/1481246

## #3 — Dino, 2004-11-09T10:18Z

```
namespace System
{
   public class EventArgs
   {
      ...
   }

   public struct DateTime 
   {
      ...
   }
}

namespace System.IO
{
   public sealed class File
   {

   }
   public sealed class Path
   {

   }
}
```

Så genom att skriva IO.Path så ser du att du inte kommer rätt för det finns ju ingen namespace som heter IO.

Permalänk: https://www.webforum.nu/p/1481251

## #4 — kristoffer, 2004-11-09T10:43Z

Det måste ju betyda att jag inte kan referera till metoder i MyProject på samma sätt som jag gör i MyProject: I MyProject skriver jag:

```
Foo.Bar.GetMyString();
```

Det innebär alltså att jag måste ersätta ovanstående kod i det nya projektet med:

```
MyProject.Foo.Bar.GetMyString();
```

och det måste göras varje gång jag använder MyProject i det nya projektet.

Permalänk: https://www.webforum.nu/p/1481261

## #5 — spango, 2004-11-09T10:57Z

Mja, ett alternativ är ju att importera rätt klasser/namespace också. *using MyProject.Foo.Bar; string s = Bar.GetMyString();*

Permalänk: https://www.webforum.nu/p/1481270

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/115461-using-system-märkligt
