2012-03-27 8 views
1

ちょうどお勧めは、名前空間をインポートするためであるか疑問に思います。 fisrtコードスニペットのように名前空間を読み込む方が良いか、完全な名前空間をコードにインラインで入力する方が良いですか?輸入:あなたなら、あなたはなく、構文およびベストプラクティス

私は両方の方法を好みます。最初のコードは控えめでコードが少なくて済み、2番目のコードはコードを見ていくうちにいくつかのロジックにアクセスしてどこか明快さを確認することができます。いずれかのための長所/短所があるかどうか、またはこれが単なる個人的な好みであるかどうか疑問に思うだけで、現在私は組み合わせを使用していますが、一貫性を保ちたいと思います。

Imports Core.Tech 
Public SomeClass 
    Public Function New() 
    Return TechMethods.SomeTechFunction() 
    End Function 
End Class 


Public SomeClass 
    Public Function New() 
    Return Core.Tech.TechMethods.SomeTechFunction() 
    End Function 
End Class 
+1

ないために良い質問です。誰もが自分の意見を持っている、あなたに個人的に最も合ったものを使う。 – mellamokb

+0

十分に公正...どちらかに賛否両論があったかどうか不思議です。 – baileyswalk

答えて

1

これは主にスタイルの問題ですが、ネットでの支配的なパターンはImport文を活用することです。 Importステートメントを使用しないと、コードに不必要な冗長性が生じます。特に、.Netネームスペースの非常に長い名前を考慮する場合。私は、これは主にスタイルの問題ですが、それは重要ないくつかのケースがあります述べたように

Dim map As New System.Collections.Generic.Dictionary(Of System.Int32, System.String) 
' vs ... 
Dim map As New Dictionary(Of Int32, String) 

例えば

。最も重要なのは、拡張メソッドの使用です。 Importステートメントを使用しないと、現在の名前空間で定義されている拡張メソッド(別名LINQ)に制限されるため、この機能の有用性は厳しく制限されています。同じ名前を持つ複数のクラス(またはメソッドやクラスの両方)が存在することになるならば、それはImportsに来るとき、あなたが作るべき

+0

ありがとう...私自身のプロジェクトを参照することは、それ以上のものでした。特に、複数のプロジェクトを参照する場合、より冗長な方法を使用して、どのプロジェクトからどのクラスが来たかをすぐに知ることができます。しかし、ちょうど間違って感じる完全な名前空間をタイプすることについては何かがあります... – baileyswalk

2

別の考慮事項です。

たとえば、System.Timers,System.ThreadingおよびSystem.Windows.Forms名前空間には3つの異なるタイマーがあります。 WinFormsアプリケーションで最初の2つのタイマーのいずれかを使用する場合は、明示的に名前空間を指定するか、エイリアスを作成します。本当に

'without imports 
Dim timer As System.Threading.Timer 

'imports 
Imports System 
Dim timer As Threading.Timer 

'alias 
Imports ThreadingTimer = System.Threading.Timer 
Dim timer As ThreadingTimer 
関連する問題