2012-03-19 17 views
6

wiem, że w Javie, że używamy * (gwiazdka) importować całą zawartość w opakowaniu jakRóżnice między C# za pomocą i Java importu

import java.lang.*; 

to dlaczego nie używamy tego samego * (gwiazdka) w języku C# do importowania całej zawartości istnieje jakakolwiek metoda, jak w java, aby zaimportować całą zawartość. Jaka jest różnica między

import java.awt.*; 

i

using System.windows.forms; 

Odpowiedz

9

Co Java import co robi .NET nazywa odwołanie - dodanie odniesienie do montażu w .NET pozwala używać (publiczne) typy zdefiniowane w tym zespole.

C# using directive jest po prostu sposobem na dostęp do tych typów bez wpisywania całego obszaru nazw.

Możesz również również użyć dyrektywy, aby podać aliasy nazw.

+0

Nie sądzę, że to jest właściwe w odniesieniu do Javy. W języku Java import jest sposobem na mniejszy wpis. Pierwsze kompilator, aby zobaczyć pakiety i klasy, odbywa się w innym miejscu: w wierszu poleceń, w plikach projektu (Maven, Ant, coś specyficznego dla IDE), itp. – marcus

0

W Javie, bez *, należy zaimportować poszczególne klasy. W języku C# dyrektywy używające dyrektyw odnoszą się do przestrzeni nazw (ale nie do przestrzeni nazw podrzędnych, tj. Przy użyciu Systemu, nie są dostępne pliki System.Windows.Forms). Tak więc, import java.awt. * Daje mniej więcej to samo, co użycie System.Windows.Forms, więc naprawdę nie ma potrzeby * w .Net.

0

Wyjaśnij, co robi Java import. Pomimo nazwy nie są ładowane żadne pliki .class. Wszystko, co robisz, to oszczędzanie pisania. Java import umożliwia odwoływanie się do klasy za pomocą jej krótkiej nazwy zamiast w pełni rozpoznanej nazwy klasy (np. String zamiast java.lang.String).

C# using różni się od Javy import, jeśli faktycznie dodaje coś do zespołu. Kod bajtowy .class języka Java jest ładowany w razie potrzeby przez moduł ładujący klasy, a nie wcześniej.

+0

Podejrzewam, że dzielimy tutaj włosy, ale użycie C# za mało dodaje do zespołu, chyba że liczą Państwo, że nakłada wymóg, aby zespół wykonawczy został nazwany jako odniesienie. O ile mogę stwierdzić, jest to odniesienie, które faktycznie modyfikuje montaż. W związku z tym wydaje mi się, że C# przy użyciu i Java import są esseintially różne nazwy dla tego samego critter. –

+0

Pięć lat później wątpię, żeby to miało znaczenie. – duffymo

+0

Jeśli czytam to 5 lat później, ma to dla mnie znaczenie i prawdopodobnie dla innych w poszukiwaniu tych samych informacji, które doprowadziły mnie dzisiaj do tej strony. Ponadto uważam również, że ważne jest, aby czytelnicy zrozumieli, że dodanie deklaracji użycia nie jest wystarczające, aby zmienić złożenie w jakikolwiek znaczący sposób, bez odpowiedniego zestawu na liście referencji. To właśnie wchodzi w manifest, który, o ile mogę powiedzieć, jest jedynym sposobem, który można powiedzieć, że wpływa na zgromadzenie, ponieważ używanie jest po prostu kodem źródłowym. –

Powiązane problemy