InfoQ

News

VBでのコレクション初期化子

作者 Jonathan Allen, 翻訳者 編集部 投稿日 2008年5月12日 午前6時10分

コミュニティ
.NET
トピック
シンタックス,
プログラミング
タグ
Visual Basic.NET

コレクション初期化子は、もともとC# 3のLINQおよびVB 9と共にリリースされることになっていた。C#がコレクション初期化子を取得した一方で、VBのリリースではそれらは削除された。その一因としては、 Visual BasicチームがVBのバージョンをさらに強力にしたかったことがある。

C#では、コレクション初期化子は既知のタイプに限定されている。VBでは、Microsoftはinferred typesについてもサポートする意向を示している。これにより、デベロッパが以下のようなステートメントを記述することが可能になるかもしれない。

Dim x = {1, 2, 3, 4}
Dim y = {{"a", 1}, {"b", 2}, {"c", 3}, {"d", 4}}
Dim z = {{1, 2}, {3, 4}, {5, 6}, {7, 8}}

しかし、この構文が正確には何を意味しているのかという議論が沸き起こっている。いかなる場合でも配列を返すのだという声もあれば、リストやディ クショナリーを参照する必要があるという意見もある。こうしたことの原因の1つに、VBには迅速にタプルを定義する明確な構文がないことが挙げられる。 さらに機能的なプログラミングや動的タイピングへと移行するにつれて、ますますタプルは重要になっている。

Anthony Green氏はとがった配列と直角の配列の問題を取り上げている。rectangular arrays. 例では変数 z は整数(,) または整数()() (C# int[,] および int[][])。

Bill McCarthy氏は、 1次元のコレクションが有名であることを示唆している。

Dim x = {1, 2, 3, 4} 'List(Of Int32)
Dim x() = {1, 2, 3, 4} 'array of Int32

ディクショナリーを扱うために、Ninputerが以下のアプローチを提供している。

Dim d = {1:"Hello", 2:"World" }

Paul Vick氏のブログ(source)で、続きを参照することができる。

原文はこちらです:     http://www.infoq.com/news/2008/05/VB-Collections

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

ファイルシステムでHello World

この連載では"ファイルシステムの作り方"をご紹介します。第1回目の今回は簡単なイントロダクションと単純なHello Worldファイルシステムの作り方を説明します。次回以降で詳しい解説と本格的なファイルシステムの作り方をご紹介しようと思います。

Guice(ジュース)を早飲みしすぎていませんか?

あなたのチームが、既存アプリケーションを「シングルトンの入れ子」設計から依存性注入(DI)へ移行しようとしているなら、この論文に心引かれるでしょうが、DIへの移行は難しいことが分かっています。論文にはGoogleのJava DIコンテナ(Guice)の名を入れていますが、Javaや.NET、Python、Rubyなどにも当てはまります。

チームがキュービクルと引き換えにコミュニケーションスキルを得る手助けをせよ

アジャイルの「自己組織化チーム」のパラダイムでは、チームのメンバに新しいスキルが要求されます。この記事では、発展しつつあるチームの自己組織化を壊さずに、新たなスキルを伝えるためのいくつかの戦略を提案します。そして、新しいスキルを身につけるのに役立つ資料のありかを提示しています。

F#の土台を越えて - 非同期ワークフロー

今回の記事では、非同期ワークフローと呼ばれるワークフロー機能の面白い使用法を考察しますが、非同期ワークフローは.NETの非同期プログラミングモデルを単純化することを目的としています。

言語としてのアーキテクチャ: ストーリー

アーキテクチャは一般に、Word文書に主として見られるような極めて実体のない、ソフトウェアシステムの概念的な側面であるか、または完全に技術によって駆動されるものかのいずれかです。そのどちらも間違っています。では、どう対処すればよいでしょうか? この記事ではアイデアを説明します、そしてアプローチのキーポイントを要約します。

メタプログラミングを使ってRubyにプロパティを追加する

Werner Schuster氏が、簡単な例を示しながら、Javaのようなプロパティをメタプログラミングを使ってRubyに追加する方法を示します。

BlazeDSとAMFでWebとデスクトップのアプリケーションを構築する

現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。

業務ソフトに手を加えずに暗号化を実現する~秘文の挑戦~

hibun

ウィルス対策ソフトや情報漏えい防止用のソフトは、いわば影の存在です。ユーザの操作性やGUIを工夫する以上に、いかに目立たない存在となるかにその技術を注ぎ込んでいます。ここでは日立ソフトが開発した「秘文」の事例を紹介します。